使用Xshell通过SSH登陆Linux

0. SSH简述

SSH使用非对称加密技术(公钥认证),所谓的公钥认证,实际上是使用一对加密字符串,一个称为公钥(public key),任何人都可以看到其内容,用于加密;另一个称为密钥(private key),只有拥有者才能看到,用于解密。通过公钥加密过的密文使用密钥可以轻松解密,但根据公钥来猜测密钥却十分困难。
ssh 的公钥认证就是使用了这一特性。服务器和客户端都各自拥有自己的公钥和密钥。为了说明方便,以下将使用这些符号。

  • Ac 客户端公钥
  • Bc 客户端密钥
  • As 服务器公钥
  • Bs 服务器密钥

1. 生成密钥对

生成密钥对主要在客户端进行, 密钥成对生成,公钥用于加密信息,可以公开在网络上传输,私钥用于解密信息,只存在于本机。在Xshell中使用Tools > User Key Manager中管理客户端密钥对。通过User Key Generation Wizard可以快速生成密钥对。

这一步中我们生成了客户端私钥,设置了名称和密码。


使用Xshell通过SSH登陆Linux_第1张图片
image.png

点击下一步生成客户端私钥,可以直接复制或者保存到文件。


使用Xshell通过SSH登陆Linux_第2张图片
image.png

2. 客户端发送公钥到服务器端

一般情况下,直接复制客户端公钥字符串到服务器中$HOME/.ssh/authorized_keys文件,如果没有相关目录需要自行创建。
不同用户的$HOME是不同的,请使用cat $HOME 查看。

3. 服务端发送公钥到客户端

在Xshell中新建连接,填入host后切换到Authentication选项卡,填写相关内容。

使用Xshell通过SSH登陆Linux_第3张图片
image.png

填写完毕之后连接到服务器,这时服务器就会把服务器公钥发送给客户端,可以在Tools > Host Key Manager查看新添加的服务器公钥。

使用Xshell通过SSH登陆Linux_第4张图片
image.png

4. 开始会话

现在服务器具有客户端公钥,当它发送消息给客户端时,可以使用客户端公钥进行加密,客户端收到消息后通过本地的客户端私钥进行解密。

而且客户端具有服务端公钥,当客户端发送消息时,使用服务端公钥进行加密,服务器收到消息后使用服务端私钥进行解密。

你可能感兴趣的:(使用Xshell通过SSH登陆Linux)