Linux系统SSH通讯过程详解
这篇文章来为大家介绍远程连接 Linux 服务器,一般使用 Linux 系统的人都习惯借助第三方远程连接,因为直接在 Linux 系统内操作很不方便,它不能进行上拉页面,这就很让人难受。可以远程连接的软件很多,有 Xshell、putty、CRT 等等,但是我比较喜欢和习惯使用 Xshell。
说到远程连接,那不得不说的一个协议就是 SSH 了,SSH 是 secure shell 的缩写,是一个安全远程管理的服务。它是一个建立在应用层上的安全远程管理协议,算是目前较为可靠的一个传输协议,专门为远程登陆会话和其他网络服务器提供安全性,利用 ssh 协议可以有效防止远程管理过程中的信息泄露问题。这个协议可用于大多数的 UNIX 操作系统中,它能够实现字符界面的远程登录管理,它默认使用 22 端口,采用密文的形式在网络中传输资源,相对于通过明文传输的 Telnet 协议,具有更高的安全性。
SSH 提供了基于账户密码(口令)和密钥对两种登陆验证方式,这两者都是通过密文传输数据的。
账户密码验证过程:
Client → Server:连接请求 Server → Client:发送公钥 Client → Server:用公钥将密码信息加密,发送 Server → Client:用密钥解密并验证消息,信息合法则建立连接通讯账户密码登录认证过程中传输的是用户的账户名和密码,密码具有足够的复杂度才能具有更高的安全性。
ssh root@192.168.88.20
Client → Server:发送连接请求,并将公钥发送; Server → Client:验证本地公钥和发送过来的公钥,如果两钥相同,生成一段 challenge 并将公钥加密,回送 ; Client → Server:用私钥解密,再 challenge 返回给服务器 Server → Client:验证两端 challenge,相同则建立连接
关于用户名密码验证登录
密钥对验证登录
1. 首先客户端生成密钥对文件
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:fl3B1MUmxWWNTdOfad8oOyjGaaU+mas/ayawa4ptiJ8 root@client
The key's randomart image is:
+---[RSA 2048]----+
| .X@|
| oo.X|
| oo+|
| =.|
| S o.o|
| . . ..... o|
|.. o ..*...o |
|oo..o . #.. o |
|.oEo...X=* . |
+----[SHA256]-----+
加密:若加密,则在调用密钥文件时需要先验证密钥的密码,密码正确才能使用密钥文件; 不加密:若不加密,则密钥文件可以直接被调用,整个登陆验证过程无需输入任何密码,即为免密登录;
2. 将公钥文件上传到服务器
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_rsa.pub"
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
root@.71.74.'s password:
Number of key(s) added: 1
Now try logging into the machine, with: "ssh 'root@.71.74.'"
and check to make sure that only the key(s) you wanted were added.
评论