1、创建公私钥

打开终端,并使用 ssh-keygen 命令生成新的密钥。指定 -C 标志以添加一条带有您的用户名的注释

ssh-keygen -t rsa -f ~/.ssh/[KEY_FILENAME] -C [USERNAME]

其中:

  • [KEY_FILENAME] 是您要用于 SSH 密钥文件的名称。例如,文件名 my-ssh-key 生成一个名为 my-ssh-key 的私钥文件和一个名为 my-ssh-key.pub 的公钥文件。

  • [USERNAME] 是连接到目标服务器的登录用户名。

如果您使用 ssh-keygen 工具在 Linux 上创建了密钥,则您的密钥保存在以下位置:

  • 公钥文件:~/.ssh/[KEY_FILENAME].pub
  • 私钥文件:~/.ssh/[KEY_FILENAME]

2、限制对您的私钥的访问,只有您能读取此密钥,且任何人都不能向其写入。

chmod 400 ~/.ssh/[KEY_FILENAME]

3、上传公钥到目标服务器

ssh-copy-id [USER]@[HOST]

其中:

  • [USER]是目标服务器登录用户名
  • [HOST]是目标服务器 IP 地址

4、在本地终端中,使用 ssh 命令,并提供您的 SSH 私钥文件、用户名和要连接的目标服务器 IP 地址

ssh -i path-to-private-key username@external-ip

替换以下内容:

  • path-to-private-key:您的 SSH 私钥文件的路径。
  • username:连接到目标服务器的登录用户名。
  • external-ip:是连接到目标服务器 IP 地址。

5、目标服务器一些配置

修改配置/etc/ssh/sshd_config

RSAAuthentication yes
PubkeyAuthentication yes
PermitRootLogin yes

其中:

  • RSAAuthentication:rsa非对称加密算法认证
  • PubkeyAuthentication:支持私钥登录
  • PermitRootLogin:如果使用 root 登录,请设置为 yes

6、使用 Bitvise SSH Client 登录

  • 选择 Client key manager -> Import导入生成的私钥文件
  • Login 标签页,Server 填写 Host、Port,Authentication 填写 Username、Initial method 选择publickey、Client key 选择刚才导入的私钥