【远程访问及控制】

news2024/11/24 15:00:31

目录

  • 一、OpenSSH服务器
    • 1.1、SSH远程管理
    • 1.2、ssh服务器的端口
    • 1.3、修改端口号
    • 1.4、设置用户登录
  • 二、实验
    • 2.1、设置白名单
    • 2.2、设置黑名单
  • 三、sshd 服务支持两种验证方式:
    • 3.1、密码验证
    • 3.2、密钥对验证
      • 公钥和私钥的关系:
  • 四、使用SSH客户端程序
    • 4.1、ssh 远程登录
    • 4.2、scp 远程复制
      • 1、下行复制
      • 2、上行复制
      • 3、使用双撇号和pwd命令来快速获取目录进行复制
    • 4.3、sftp安全 的FTP文件传输
  • 五、配置密钥对验证
    • 5.1、在客户端创建密钥对
    • 5.2、实验zhangsan用户用密钥对登录
    • 5.4、另一种快速实现公钥文件的复制
  • 六、ssh密钥对面交互登录
    • 6.1、使用没有密码的密钥对
    • 6.2、创建ssh会话代理(只能在当前会话中有效)


一、OpenSSH服务器

1.1、SSH远程管理

SSH:
是一种安全通道协议,主要用来实现字符界面的远程登录、远程复制等功能。

SSH协议对通信双方的数据传输进行了加密处理,其中包括用户登录时输入的用户口令。因此SSH协议具有很好的安全性.
字号4

                         网络
SSH客户端 <----------------------------------> SSH服务端
            数据传输是加密的,可以防止信息泄漏
            数据传输是压缩的,可以提高传输速度

SSH客户端: Putty、Xshel1、 CRT
SSH服条端: OpenSSH

OpenSSH 是实现 SSH 协议的开源软件项目,适用于各种 UNIX、Linux 操作系统。Centos 7系统默认已安装openssh相关软件包,并已将 sshd 服务添加为开机自启动。

rpm -q openssh
查看这个软件有没有安装

在这里插入图片描述

systemctl status sshd
可以查看开机有没有自动启动

在这里插入图片描述

systemctl is-enabled sshd
简介查看有没有开机自动启动,出现enable就是开机自启了

在这里插入图片描述如果没有出现enable就
执行“svstemctl start sshd”命令即可启动 sshd 服务

1.2、ssh服务器的端口

sshd 服务默认使用的是TCP的 22端口
sshd  服务的默认配置文件是/etc/ssh/sshd confia

在这里插入图片描述

vim sshd_config
进入服务端的配置文件

在这里插入图片描述

禁止无密码用户登录
在这里插入图片描述禁止用户反向解析,提高服务器的响应速度
在这里插入图片描述
在这里插入图片描述

1.3、修改端口号

在这里插入图片描述

netstat -natp | grep sshd 
来查看当前端口号,发现已经改为2345端口号了,但是源端口号没有终端

在这里插入图片描述
关闭xshell就发现连接不起来了

在这里插入图片描述
点击主机的属性,将端口号设置为刚刚修改的2345端口号

在这里插入图片描述

netstat -natp | grep sshd

查看到这个端口号已经设置为2345端口

在这里插入图片描述

ssh root@192.168.102.10 -p 2345
root 是指定用户
@192.168.102.10 是指定对方主机的IP地址
-p 是指定对应主机的端口号

在这里插入图片描述

也可以在源主机上查看到有一个192.168.102.20的主机连接到这
在这里插入图片描述

vim /etc/ssh/sshd_config

在这里插入图片描述

systemctl restart sshd
设置完后重启网卡
netstat -natp | grep sshd
就可以看到已经设置本地的地址了,192.168.102.102345

在这里插入图片描述

vim /etc/ssh/sshd_config

在这里插入图片描述设置完后root用户就不能打开了
在这里插入图片描述
则除了root用户其他用户能登录
在这里插入图片描述

ssh 192.168.102.10 -p 2345
没有输入用户,按下enter后就会自动补全当前用户

在这里插入图片描述

设置把空密码用户不允许登录
在这里插入图片描述
设置一个空密码用户
在这里插入图片描述设置完不允许空密码登录后,这个空密码的用户就登录不了了
在这里插入图片描述

设置空密码用户允许登录
在这里插入图片描述

设置完成后,可以看见空密码用户可以登录
在这里插入图片描述

1.4、设置用户登录

只允许zhangsan、lisi、wangwu用户登录,且其中wangwu用户仅能够从IP地址为192.168.102.10的主机远程登录
AllowUsers zhangsan lisi wangwu@102.168.102.10
多个用户以空格分隔

禁止某些用户登录,用法于AllowUsers 类似 (注意不要同时使用)

DenyUsers 用户名

二、实验

先设置几个实验用户,配置密码
在这里插入图片描述

2.1、设置白名单

在源主机里设置了让wangwu用户只能登录在192.168.102.10配置的主机
在这里插入图片描述
所以wangwu用户就登录不了其他的主机
在这里插入图片描述

则其他用户就可以随意登录不同的主机
在这里插入图片描述

在这里插入图片描述在192.168.102.10的主机里设置wangwu这个用户就可以登录
在这里插入图片描述
在任意主机上登录wolong用户,不能登录
因为在白名单里没有设置wolong

在这里插入图片描述

root用户也不在白名单里面所以也登录不了在这里插入图片描述
在白名单里在设置一个root用户
在这里插入图片描述
白名单设置完后,root用户就可以登录了
在这里插入图片描述

2.2、设置黑名单

DenyUsers  目标用户

在这里插入图片描述
设置完后在黑名单里的用户就登录不了了

在这里插入图片描述

为什么wangwu能登录
因为在黑名单里设置的是在192.168.102.10的主机里不能登录,其他的主机可以登录

在这里插入图片描述

三、sshd 服务支持两种验证方式:

3.1、密码验证

对服务器中本地系统用户的登录名称、密码进行验证。简便,但可能会被暴力破解

查看secure文件,查看主机有没有被攻击
看见被攻击了,就把那些登录的IP地址给放进黑名单里

在这里插入图片描述

3.2、密钥对验证

要求提供相匹配的密钥信息才能通过验证。通常先在客户端中创建一对密钥文件(公钥、私钥),然后将公钥文件放到服务器中的指定位置。远程登录时,系统将使用公钥、私钥进行加密/解密关联验证。能增强安全性,且可以免交互登录。

公钥和私钥的关系:

·公钥和私钥是成对生成的,这两个密钥互不相同,可以互相加密和解密。
·不能根据一个密钥来推算出另一个密钥。
·公钥对外公开,私钥只有私钥的持有人才知道。

当密码验证、密钥对验证都启用时,服务器将优先使用密钥对验证。可根据实际情况设置验证方式


vim /etc/ssh/sshd config
PasswordAuthentication yes
#启用密码验证

PubkeyAuthentication yes
#启用密钥对验证

AuthorizedKeysFile .ssh/authorized keys
#指定公钥库文件

在里面找到公钥文件
在这里插入图片描述

四、使用SSH客户端程序

4.1、ssh 远程登录

ssh [选项]  用户@主机的IP地址
ssh 使用小p来指定端口号

当用户第一次登录SSH服务器时,必须接受服务器发来的ECDSA密钥(根据提示输入"yes")后才能继续验证。

在这里插入图片描述

在.ssh目录里的known_hosts文件存放验证信息,如果与这个文件里的信息不一致就禁止访问,一致就同意访问
在这里插入图片描述ssh命令可以使一台主机快速执行一个命令,并且执行完后就退出
在这里插入图片描述
ssh命令也可以实现远程主机删除本机的文件

在这里插入图片描述
在这里插入图片描述

4.2、scp 远程复制

1、下行复制

将远程主机中的文件复制到本机

scp root@192.168.102.20:/opt/john-1.8.0.tar.gz ./

192.168.102.20   表示对方主机的IP地址

:/opt/表示对方的目录,后面跟上要复制的目录文件
 绝对路径

在最后面加上 . / 表示将对方主机的opt目录里的文件复制到当前主机目录里

在这里插入图片描述

2、上行复制

将本机的目录复制到远程主机上

scp -P 2345 -r dznb/ 192.168.102.10:/root/

- 大P 指定对方的端口号

- r 将本机的目录复制到远程主机

dznb/  本机的目录

192.168.102.10   远程主机的IP地址

:/root/   指定复制到远程主机的 root 目录里,绝对路径

在这里插入图片描述在这里插入图片描述
如果有同名目录的话,复制的内容会直接覆盖

在这里插入图片描述在这里插入图片描述

3、使用双撇号和pwd命令来快速获取目录进行复制

在这里插入图片描述
直接按下波浪号键,不加shift键

在这里插入图片描述在这里插入图片描述

4.3、sftp安全 的FTP文件传输

由于使用了加密/解密技术,所以传输效率比普通的FTP要低,但安全性更高。操作语法sftp与ftp几乎一样

sftp -P 2345 root@192.168.102.10
在sftp命令里,要使用大P来指定对方主机的端口号
root 对方的root用户

在这里插入图片描述也可以使用put命令来使远程主机上传文件到本机
在这里插入图片描述在这里插入图片描述

sftp > get 文件名     下载文件到ftp目录
sftp > put 文件名     上传文件到ftp目录
sftp > quit          退出

五、配置密钥对验证

5.1、在客户端创建密钥对

通过ssh-keygen工具为当前用户建密钥对文件。可用的加密算法为RSA、ECDSA或DSA等(ssh-keygen命令的"-t"选项用于指定算法类型)

在这里插入图片描述
将公钥文件复制到192.168.102.10主机上
在这里插入图片描述
在目标主机上查看到公钥文件,使用cat查看公钥文件的密钥信息
在这里插入图片描述

5.2、实验zhangsan用户用密钥对登录

你想要哪个客户端使用哪个用户登录,就把公钥文件导入到该文件的家目录里
现在使用zhangsan用户密钥登录

在这里插入图片描述创建的文件名必须是authorized_keys
在这里插入图片描述

在当前用户的家目录里设置一个.shh的目录并且修改权限为7.0.0
在这里插入图片描述

cat id_rsa.pub >> /home/zhangsan/.ssh/authorized_keys

重定向输出到自己的家目录里的zhangsan用户到.ssh目录里创建一个authorized_keys文件

请添加图片描述
把文件的使用权限设定为6.0.0的使用权限
在这里插入图片描述

5.4、另一种快速实现公钥文件的复制

ssh-copy-id -p 2345 -i id_rsa.pub zhangsan@192.168.102.10
-i id_rsa.pub 指定公钥文件
-p 指定端口号

在这里插入图片描述
自动设置目录和文件的权限
在这里插入图片描述
接下来就可以使用密钥对的密码登录了
在这里插入图片描述

六、ssh密钥对面交互登录

6.1、使用没有密码的密钥对

ssh-keygen -t rsa/ecdsa    一路回车,不设置密码

ssh-copy-id -i 公钥文件    目标主机用户@目标主机IP/主机名

6.2、创建ssh会话代理(只能在当前会话中有效)

ssh-agent bash  在当前登录环境中实现一个代理
ssh-add         输入这个密钥对的密码

输入以上命令后就可以实现免密码登录,只能在当前会话中有效退出当前会话就会消失这个代理
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/448881.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

java项目之疫情网课管理系统(springboot+vue源码)

风定落花生&#xff0c;歌声逐流水&#xff0c;大家好我是风歌&#xff0c;混迹在java圈的辛苦码农。今天要和大家聊的是一款基于springboot的疫情网课管理系统。项目源码以及部署相关请联系风歌&#xff0c;文末附上联系信息 。 &#x1f495;&#x1f495;作者&#xff1a;风…

Java集合框架(Collection)

集合框架 一个Java对象可以在内部持有若干其他Java对象&#xff0c;并对外提供访问接口&#xff0c;把这种Java对象称为集合 集合框架都包含三大块内容&#xff1a;&#xff08;接口、实现、算法&#xff09; &#xff08;1&#xff09;对外的接口 &#xff08;2&#xff09;…

【C++】string类的简单模拟实现

目录 string类初识 string模拟实现 string类成员变量 构造函数 拷贝构造 赋值运算符重载 析构函数 深浅拷贝问题 string类初识 由于C语言中的字符串不太符合OOP(面向对象编程)的思想&#xff0c;而且其底层空间需要用户自己管理&#xff0c;经常有访问越界的情况出现。…

模仿风宇博客登录蒙层弹窗(vuex+computed实现)

效果图 使用了动态组件做组件切换使用vue内置的transition组件实现过渡效果&#xff0c;蒙层 和 弹框 都使用了transition&#xff0c;并嵌套vuex computed计算属性&#xff0c;实现数据 和 方法共享&#xff0c;让其它组件也能够控制到登录弹框蒙层使用了固定定位未实现&…

读取注册表中的REG_QWORD和REG_BINARY(二进制)类型数据

读取注册表中的REG_QWORD和REG_BINARY二进制类型数据 发现的问题注册表中的一些概念&#xff08;统一认识&#xff09;读取代码&#xff08;字节数据大于8的会显示f开头的前缀&#xff09;说明&#xff08;备注&#xff09;改进代码参考链接 发现的问题 首先我们要明确&#x…

【Jetpack】DataBinding 架构组件 ⑥ ( RecyclerView 数据绑定 )

文章目录 一、RecyclerView 数据绑定核心要点1、启用数据绑定 / 导入依赖2、RecyclerView 条目 DataBinding 布局3、自定义 RecyclerView.Adapter 适配器要点 ( 本博客重点 ★ ) 二、RecyclerView 数据绑定源码示例1、build.gradle 构建脚本 ( 启用数据绑定 / 导入依赖 )2、主界…

ggplot中的注释图层annotate

文章目录 介绍利用注释层添加图形利用注释层添加文本利用注释层添加公式 介绍 ggplot作图包中除了常见的geom图层外&#xff0c;还有一个annotate的注释图层&#xff0c;实现对作图对象的额外添加&#xff0c;其添加要素不在ggplot()所接受的数据框中。 利用注释层添加图形 …

家政服务APP小程序开发功能详解

随着人们生活水平的提高&#xff0c;对家政服务的要求也越来越高。而传统的到家政公司寻找服务人员的方法显然已经无法满足人们需求&#xff0c;取而代之的是线上预约家政服务。家政服务App小程序软件可以满足用户在线预约&#xff0c;还可以根据自己的需求定制家政服务、选择家…

【Hadoop-CosDistcp】通过CosDistcp的方式迁移Cos中的数据至HDFS

【Hadoop-CosDistcp】通过CosDistcp的方式迁移Cos中的数据至HDFS 1&#xff09;功能说明2&#xff09;使用环境3&#xff09;下载与安装4&#xff09;原理说明5&#xff09;参数说明6&#xff09;使用示例7&#xff09;迁移 Cos 中的数据至 HDFS 及数据校验7.1.数据迁移7.2.数据…

【Unity入门】16.脚本引用组件

【Unity入门】脚本引用组件 大家好&#xff0c;我是Lampard~~ 欢迎来到Unity入门系列博客&#xff0c;所学知识来自B站阿发老师~感谢 &#xff08;一&#xff09;脚本引用普通组件 &#xff08;1&#xff09;点击控制音频播放 还记得我们的车载音乐AudioSource吗&#xff1f;…

zabbix搭建

1.环境 本实验使用一台centos7主机&#xff0c;关闭了firewalld和selinux服务&#xff0c;zabbix版本为5.0版本&#xff0c;mysql使用版本为5.7版本 若要搭建6.0以上版本的zabbix&#xff0c;则需要使用mysql 8.0以上的版本 其它版本的zabbix可参考zabbix官网:Download and…

YOLOv5+单目实现三维跟踪(python)

YOLOv5单目跟踪&#xff08;python&#xff09; 1. 目标跟踪2. 测距模块2.1 设置测距模块2.2 添加测距 3. 主代码4. 实验效果 相关链接 1. YOLOv5单目测距&#xff08;python&#xff09; 2. YOLOv7单目测距&#xff08;python&#xff09; 3. YOLOv7单目跟踪&#xff08;pytho…

C++练级之初级:第四篇

C练级之初级&#xff1a;第四篇 引用 C练级之初级&#xff1a;第四篇1.引用1.1引用的介绍1.2引用的使用场景1.3常引用 2.引用的底层3.引用的与指针的比较 总结 1.引用 1.1引用的介绍 &#x1f914;首先还是一个问题&#xff0c;引用是解决C语言什么不足&#xff1f; 指针在&am…

Python自动化sql注入:布尔盲注

在sql注入时&#xff0c;使用python脚本可以大大提高注入效率&#xff0c;这里演示一下编写python脚本实现布尔盲注的基本流程&#xff1a; 演示靶场&#xff1a;sqli-labs 布尔盲注 特点&#xff1a;没有回显没有报错&#xff0c;但根据sql语句正常与否返回不同结果&#x…

新手做电商直播带货怎么和快递合作谈价格

新手做电商直播带货怎么和快递合作谈价格达人带货一般怎样的合作模式&#xff1f;#达人带货 #直播带货 #红人 #百收网 跟快递谈价其实是有方法的&#xff0c;快递的价格不是说不能打下来&#xff0c;就是需要你们多一点点的心机。这个视频我就再给你们补充三个方法&#xff0c;…

HCIP之STP

企业网三层架构 线路冗余—二层网络桥接环路 因为路由器的路由表是由相对完善的计算所得&#xff0c;且存在防环规则&#xff1b;故路由器物理链路上实施备份时&#xff0c;一般不会出现环路&#xff1b;但交换转发数据依赖MAC表&#xff08;CAM表&#xff09;&#xff0c;该表…

【模式识别4】YOLO目标检测数据集xml格式转txt格式

YOLO目标检测数据集xml格式转txt格式 1. 转换前的xml格式2. xml格式转txt格式代码2.1 源代码2.2 需要修改的地方 3. 转换后的txt格式 代码资源&#xff1a;voc2txt.py 1. 转换前的xml格式 如果我们使用LabelImg工具标注数据集&#xff0c;生成的xml文件如下&#xff1a; xml…

Linux运维:推荐八款Linux远程连接工具

目录 2、XShell 3、SecureCRT 4、PuTTY 5、WindTerm 6、iTerm2 7、MobaXterm 8、Termius 今天给大家推荐八款Linux远程连接工具&#xff0c;非常实用&#xff0c;希望对大家能有所帮助&#xff01; 1、NxShell NxShell是一款开源的Linux远程管理工具&#xff0c;是我日…

Spring Boot 接口加解密

1. 介绍 在我们日常的Java开发中&#xff0c;免不了和其他系统的业务交互&#xff0c;或者微服务之间的接口调用 如果我们想保证数据传输的安全&#xff0c;对接口出参加密&#xff0c;入参解密。 但是不想写重复代码&#xff0c;我们可以提供一个通用starter&#xff0c;提…

【python数据可视化】基于networkx的10个绘图技巧

一、说明 networkx在02年5月产生&#xff0c;是用python语言编写的软件包&#xff0c;便于用户对复杂网络进行创建、操作和学习。利用networkx可以以标准化和非标准化的数据格式存储网络、生成多种随机网络和经典网络、分析网络结构、建立网络模型、设计新的网络算法、进行网络…