腾讯云国际站:如何通过密钥登录替代密码验证?

本文由【云老大】 TG@yunlaoda360 撰写

Linux 系统

  1. 生成密钥对
  2. 在本地机器或服务器上使用 ssh-keygen 命令生成密钥对。例如,在 Linux 或 macOS 系统中,打开终端并输入 ssh-keygen -t rsa -b 4096,这将生成一个 RSA 密钥对,其中 -b 4096 表示密钥长度为 4096 位,提供更高的安全性。按照提示选择密钥文件的保存位置(通常默认位置即可)和输入密码短语(可以为空,但设置密码短语会增加一层保护)。
  3. 执行命令后,会在指定位置生成两个文件,一个是公钥文件(如 id_rsa.pub),另一个是私钥文件(如 id_rsa)。
  4. 将公钥复制到服务器
  5. 使用 ssh-copy-id 命令将公钥复制到目标服务器。例如,ssh-copy-id -i ~/.ssh/id_rsa.pub user@remote_host,其中 user 是服务器的用户名,remote_host 是服务器的 IP 地址或主机名。这个命令会将公钥添加到服务器的 ~/.ssh/authorized_keys 文件中。
  6. 如果服务器不允许密码登录,或者无法使用 ssh-copy-id 命令,可以手动将公钥文件的内容复制到服务器的 ~/.ssh/authorized_keys 文件中。例如,使用 scp 命令将公钥文件复制到服务器,然后登录服务器,将公钥内容追加到 ~/.ssh/authorized_keys 文件。
  7. 配置服务器的 SSH 守护进程
  8. 登录服务器,编辑 SSH 守护进程的配置文件(通常位于 /etc/ssh/sshd_config)。
  9. 找到 PasswordAuthentication 选项,将其设置为 no,以禁用密码登录。
  10. 找到 PubkeyAuthentication 选项,确保其设置为 yes,以启用公钥认证。
  11. 保存配置文件并重启 SSH 服务。例如,在基于 Debian 的系统中,执行 sudo systemctl restart ssh;在基于 Red Hat 的系统中,执行 sudo systemctl restart sshd。

Windows 系统

  1. 生成密钥对
  2. 在 Windows 系统中,可以使用PuTTYgen工具生成密钥对。打开PuTTYgen,选择RSA密钥类型,设置密钥位数(如4096位),然后点击“Generate”按钮生成密钥对。按照提示在窗口中移动鼠标以生成随机性。
  3. 生成密钥对后,可以设置密码短语(可选)来增加安全性。然后,点击“Save private key”保存私钥文件(如 private_key.ppk),点击“Save public key”保存公钥文件(如 public_key.txt)。
  4. 将公钥复制到服务器
  5. 登录服务器,编辑用户目录下的 .ssh/authorized_keys 文件(如果文件不存在,可以创建它)。将公钥文件的内容复制并粘贴到 authorized_keys 文件中。
  6. 确保 .ssh 目录和 authorized_keys 文件的权限设置正确。例如,.ssh 目录权限应为700(只有所有者有读写执行权限),authorized_keys 文件权限应为600(只有所有者有读写权限)。可以使用以下命令进行设置:
  7. chmod 700 ~/.ssh
  8. chmod 600 ~/.ssh/authorized_keys
  9. 配置服务器的 SSH 守护进程
  10. 编辑服务器的 sshd_config 文件(通常位于 /etc/ssh/sshd_config)。
  11. 找到 PasswordAuthentication 选项,将其设置为 no。
  12. 找到 PubkeyAuthentication 选项,确保其设置为 yes。
  13. 保存配置文件并重启 SSH 服务。

使用密钥登录

  1. Linux 和 macOS 系统
  2. 在本地机器上,使用 ssh 命令登录服务器。例如,ssh -i ~/.ssh/id_rsa user@remote_host,其中 -i 参数指定私钥文件的位置。
  3. Windows 系统
  4. 打开PuTTY,在“Connection”->“SSH”->“Auth”选项中,点击“Private key file for authentication”旁边的“Browse”按钮,选择之前保存的私钥文件(如 private_key.ppk)。
  5. 返回PuTTY的“Session”部分,输入服务器的主机名或IP地址,然后点击“Open”按钮登录服务器。
原文链接:,转发请注明来源!