1.1 什么是 ssh
ssh 是 Secure Shell 的缩写,是一个建立在应用层上的安全远程管理协议。ssh 是目前较为可靠的传输协议,专为远程登录会话和其他网络服务提供安全性。利用 ssh 协议可以有效放置远程登录过程中的信息泄露问题。
ssh 可用于大多数 UNIX 和类 UNIX 操作系统中,能够实现字符界面的远程登录管理,它默认使用 22 端口,采用密文的形式在网络中传输数据,相对于通过铭文传输的 Telnet 协议,具有更高的安全性。
1.2 ssh 的登陆验证模式
ssh 提供了基于账户密码(口令)和密钥对两种登录验证方式,这两者都是通过密文传输数据的。
1.2.1 账户密码验证
账户密码登录认证过程中传输的是用户的账户名和密码,密码具有足够的复杂性才能具有更高的安全性。
Linux 主机之间的远程管理工具是 ssh 命令,所以我们直接使用 ssh 进行远程登录
格式:
ssh 用户名@IP地址
ssh root@192.168.117.100
ssh -p 端口(默认22) 用户名@IP地址
ssh -p 22 root@192.168.117.100
1.2.2 密钥对验证
1、首先需要在 Client 上创建一对密钥,并且需要把公钥放在需要访问的 Server 上
2、当 Client 需要连接 Server 时,Client 端的软件就会向 Server 端发出登录请求,请求使用密钥对中的公钥进行安全验证
3、Server 收到请求后,会在该用户的家目录下查询公钥文件,拿 Client 发送过来的公钥和自己家目录下的公钥进行比较
4、如果两个公钥一致,Server 就用公钥加密 challenge,并把它发送给 Client 软件,Client 收到加密内容之后,使用本地的私钥进行解密,再把解密结果发送给 Server 端,Server 端验证成功后,允许登录。
1.3 配置 ssh 服务
1.3.1 环境准备
准备好两台 Linux 操作系统的主机,配置好相关网络参数,实现可以正常通信。
主机名 | IP | 系统版本 |
---|---|---|
test~1 (客户端) | 192.168.117.130 | CentOS7.6 |
test~2 (服务端) | 192.168.117.131 | CentOS7.6 |
#临时关闭防火墙:
#清空防火墙规则
[root@test1 ~]# iptables -F
#临时关闭 selinux
[root@test1 ~]# setenforce 0
#永久关闭防护功能(以下命令主机重启后生效