远程访问及控制

154 阅读3分钟

SSH远程管理

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

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

                        网络

SSH客户端<----------------------------->SSH服务端

          数据传输是加密的,可以防止信息泄露

          数据传输是压缩的,可以提高传输速度

SSH客户端:Pully、Xshell、CRT

SSH服务端:Openssh

sshd### 服务默认使用TCP的 22 端口

sshd ###服务的默认配置文件是 /etc/ssh/sshd_config

ssh_config###文件是针对客户端的配置文件

sshd_config ###文件是针对服务端的配置文件

sshd.png

ssh服务支持两种验证方式

1.密码验证

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

vim /etc/ssh/sshd_config命令修改密码最大重试次数、禁止root用户登录

密码登录修改.png

重启sshd

systemctl restart sshd

远程登录lisi用户

lisi用户.png

输出两次错误密码会自动断开连接

断开连接.png

登录root用户

root用户.png

即使输入了对的密码,也会拒绝连接

拒绝登录.png

2.密钥对验证

公钥和私钥的关系:

·公钥和私钥是成对生成的,这两个密钥互不相同,可以互相加密和解密

·不能根据一个密钥推算出另一个密钥

·公钥对外公开,私钥只有持有人知道。

密钥对图解.png

1、在客户端创建密钥对 ssh-keygen -t rsa|ecdsa|dsa

在客户端创建密钥对1.png

箭头所示是输入密码以及再次确认密码,不需要密码可以直接按回车

多两个文件.png

密钥生成后会在当前目录下多出两个文件,id_rsa和id_rsa.pub,其中id_rsa是私钥(这个很重要,不能外泄),id_rsa.pub这个是公钥

2、把公钥文件导到ssh服务端

(1)手动 复制 客户端公钥文件 id_rsa.pub 的内容,在服务端 用户的家目录中的 .ssh 目录中 创建 authorized_keys 文件并把客户端公钥文件内容粘贴到这个文件中

(2)自动 在客户端 ssh-copy-id -i 公钥文件 用户@服务端IP

3、 在客户端 使用 ssh 用户@服务端IP 登录服务端,使用 密钥对私钥的密码进行验证

登录.png

实现面交互登录

1、直接创建空密码的密钥对来使用 ssh-keygen -t rsa

空密钥.png

进入之后直接回车

2、在导入公钥文件后,在客户端 ssh-agent bash ssh-add ,此方式只能在当前连接中有效

不需要密钥可以直接进入服务端

推送及拉去文件

推送 上行复制

scp [-r 目录] 文件 [用户]@服务端IP:保存路径

客户端:192.168.132.5 服务端:192.168.132.132

将客户端root用户根目录下fstab文件复制到服务端root用户根目录下的repo.bak文件夹

上推文件.png

拉取 下行复制

scp [-P] [用户]@服务端IP:保存路径 本地路径

客户端:192.168.132.5 服务端:192.168.132.132

将服务端lisi用户根目录下的repo.bak文件复制到客户端当前用户根目录下的fstab文件里

下拉文件.png