SSH是一种网络协议,用于计算机之间的加密登录。最早的时候,互联网通信都是明文通信,一旦被截获,内容就暴露无疑。1995年,芬兰学者Tatu Ylonen设计了SSH协议,将登录信息全部加密,成为互联网安全的一个基本解决方案,迅速在全世界获得推广,目前已经成为Linux系统的标准配置。
ssh远程连接
作用:远程端的主机基于网络通过标准的远程协议远程登录到对应的主机,类似于直接在本地端操作。
从客户端来看,SSH提供两种级别的安全验证。
第一种级别(基于口令的安全验证)
只要你知道自己帐号和口令,就可以登录到远程主机。所有传输的数据都会被加密,但是不能保证你正在连接的服务器就是你想连接的服务器。可能会有别的服务器在冒充真正的服务器,也就是受到“中间人”这种方式的攻击。
第二种级别(基于密匙的安全验证)
需要依靠密匙,也就是你必须为自己创建一对密匙,并把公用密匙放在需要访问的服务器上。如果你要连接到SSH服务器上,客户端软件就会向服务器发出请求,请求用你的密匙进行安全验证。服务器收到请求之后,先在该服务器上你的主目录下寻找你的公用密匙,然后把它和你发送过来的公用密匙进行比较。如果两个密匙一致,服务器就用公用密匙加密“质询”(challenge)并把它发送给客户端软件。客户端软件收到“质询”之后就可以用你的私人密匙解密再把它发送给服务器。
用这种方式,你必须知道自己密匙的口令。但是,与第一种级别相比,第二种级别不需要在网络上传送口令。
客户机间SSH免密登录
1.生成密钥对
[root@localhost ~]# ssh-keygen -t RSA
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:LCxPlDFpovx7HnGXPn0ULvGArz6yrzzrvfpeeZ4eHZE root@localhost.localdomain
The key's randomart image is:
+---[RSA 3072]----+
| o. |
| . o+ . .|
| . . oo . o .E |
| o o . o = ..|
| .. = S o o +. |
| .+ + o o + ..|
| .o + + + .|
| . .ooo.o + o |
| o..B@Bo .+ |
+----[SHA256]-----+
[root@localhost ~]# ll /root/.ssh
total 12
-rw-------. 1 root root 2610 Oct 15 22:14 id_rsa
-rw-r--r--. 1 root root 580 Oct 15 22:14 id_rsa.pub
2.发送公钥到要连接的服务器主机
[root@localhost ~]# ssh-copy-id -i 192.168.138.132
/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@192.168.138.132's password:
在另一台设备相同目录找到公钥
[root@localhost ~]# ll /root/.ssh
total 4
-rw-------. 1 root root 580 Oct 15 22:25 authorized_keys