SSH 可以通过密钥对实现免密登录

1,319 阅读2分钟

SSH 可以通过密钥对实现免密登录,以下是详细步骤:

一、生成密钥对

在本地机器上生成密钥对,使用ssh-keygen命令:

  1. 打开终端。
  1. 输入ssh-keygen并按下回车键。
    • 系统会提示输入密钥文件的保存路径和文件名,直接按回车键接受默认值即可(通常为~/.ssh/id_rsa和~/.ssh/id_rsa.pub)。
    • 接着会提示输入密码,如果你不想为密钥设置密码,可以直接按回车键。如果设置了密码,在每次使用密钥登录时都需要输入该密码。

二、将公钥复制到远程服务器

  1. 生成密钥对后,使用以下命令将公钥复制到远程服务器:
    • ssh-copy-id username@remotehost,其中username是远程服务器上的用户名,remotehost是远程服务器的地址。
    • 系统会提示输入远程服务器的密码。复制过程中,系统可能会询问是否继续连接并添加到已知主机列表,输入yes并按下回车键继续。

或者你也可以手动复制公钥:

  1. 在本地机器上,打开~/.ssh/id_rsa.pub文件,复制其中的内容。
  1. 使用任何方法(如scp命令或文本编辑器直接在远程服务器上编辑文件)将公钥内容添加到远程服务器上~/.ssh/authorized_keys文件中。如果该文件不存在,可以创建它。确保文件的权限设置正确,一般来说,authorized_keys文件的权限应该是600,~/.ssh目录的权限应该是700。

三、测试免密登录

  1. 在本地机器上,打开终端,输入ssh username@remotehost,如果无需输入密码即可登录到远程服务器,则说明免密登录设置成功。

设置免密登录后,不仅方便快捷,还提高了安全性,因为无需在命令行中输入密码,减少了密码被窃取的风险。同时,也可以避免因为密码输入错误而导致的登录失败。