一、SSH远程管理
SSH 是一种安全通道协议,主要用来实现字符界面的远程登录、远程复制等功能。SSH协议对通信双方的数据传输进行加密处理,其中包括用户登录时输入的用户口令。因此SSH协议具有很好的安全性。
1.1 SSH协议 (Secure Shell)
- 是一种安全通道协议
- 对通信数据进行了加密处理,用于远程管理
1.2 openSSH服务器配置文件
- 服务名称:sshd
- 服务端主程序:/usr/sbin/sshd
- 服务端配置文件:/etc/ssh/sshd_config
- 客户端配置文件:/etc/ssh/ssh_config
1.3 常用的SSH软件的介绍
SSH客户端:putty(开源工具),xshell,CRT
SSH服务端:openSSH(centos7系统默认安装)
centos7 ssh服务启动自检命令: systemctl is-enabled sshd
1.4 SSH的密钥登录
密钥是一种参数,它是在明文转换为密文或将密文转换为明文的算法中输入的参数。密钥分为对称密钥与非对称密钥。而ssh密钥就是一种非对称性的密钥。
ssh 远程访问控制中不仅仅可以使用用户密码登录,还可以通过 密钥进行登录。而密钥登录的产生是通过客户端与服务端进行一系列的操作过程产生的。
密钥登录的过程:
- ssh客户端通过
ssh-keygen
生成自己的公钥和私钥,将公钥发送给ssh服务端,并且放在指定的位置。 - 公钥发送完毕后。ssh客户端再向ssh 服务端进行登录请求。
- ssh服务端收到ssh客户端的登录请求后,ssh服务端用对应的公钥加密一些随机数返回给ssh客户端。
- ssh客户端收加密的随机数后使用私钥对其进行解密,再将解密的结果发送给ssh服务端进行验证。
- ssh服务端接收到ssh客户端发送过来的解密数据,将其与原数据进行比对,保持一致则允许用户进行登录
2. SSH的运用
2.1 ssh配置文件信息
在Linux中实现ssh,是通过openSSH的sshd服务提供的。
存放ssh服务端的配置文件
/etc/ssh/sshd_config
存放ssh客户端的配置文件
/etc/ssh/ssh_config (该配置基本默认保持不变,就可以了)
2.2 ssh在Linux中的密码登录
ssh [远程主机用户名]@[远程服务器主机名或IP地址] [-p port]
[root@localhost7 ~]# ssh 192.168.73.110
[root@localhost7 ~]# ssh -p 22 zhangsan@192.168.73.110 -p指定端口
exit 退出当前用户
2.3 利用ssh协议传输文件和获取文件
ssh scp sftp 都是默认使用ssh协议,端口为 tcp 22
scp传输文件
scp [-r 目录] 文件 [用户]@服务端IP:保存路径(如果端口号修改过,就用-P进行指定)
[root@localhost6 opt]# scp shiyan.zip root@192.168.3.12:/opt
scp获取服务端的文件
scp [-P] [用户]@服务端IP:保存路径 本地路径
[root@localhost6 opt]# scp root@192.168.3.12:/opt/shiyan.zip /opt
sftp远程访问操作
sftp [-P] 用户@服务端IP (当默认端口改变时,可以用-P指定)
[root@localhost6 opt]# sftp root@192.168.3.12
3. ssh密钥登录操作
实验准备
准备两台虚拟机,一台当作ssh客户端,一台当作ssh服务端,检查一下ssh相关服务的软件包和功能是否正常即可。
实验验证
一组密钥对是客户端的某一个用户和服务端的某一个用户之间建立的联系,其他用户无法使用该密钥获取登录
实验步骤
第一步:在客户端中创建密钥
[root@localhost ~]# ssh-keygen -t rsa
[root@localhost ~]# cd /root/.ssh
[root@localhost .ssh]# ls
id_rsa id_rsa.pub
第二步:把公钥文件导入到ssh服务端 (两设备要在同一网段)
验证链接
成功