轻松实现SSH免密码登录:详细步骤指南

334 阅读2分钟

SSH免密码登录是一种便捷的安全机制,允许你无需输入密码即可通过SSH连接到远程服务器。这不仅提高了效率,还增强了安全性。以下是详细步骤,帮助你轻松配置SSH免密码登录:

第1步:生成SSH密钥对

首先,你需要在本地计算机上生成一对SSH密钥。打开终端并执行以下命令:

ssh-keygen -t rsa -b 4096
  • -t rsa 指定使用RSA算法。
  • -b 4096 确保密钥长度为4096位,提供更高安全性。

系统会询问你保存密钥的位置(默认为~/.ssh/id_rsa)以及设置一个密码短语。为了实现免密码登录,你可以直接按回车键跳过密码短语的设置。

第2步:将公钥复制到远程服务器

生成密钥对后,下一步是将公钥复制到远程服务器。使用ssh-copy-id命令,你需要知道远程服务器的用户名和IP地址或主机名:

ssh-copy-id 用户名@远程服务器地址

例如:

ssh-copy-id user@example.com

如果远程服务器不支持ssh-copy-id,你可以手动复制公钥:

  1. 显示公钥内容:

    cat ~/.ssh/id_rsa.pub
    
  2. 将公钥内容复制到远程服务器的~/.ssh/authorized_keys文件中:

    ssh 用户名@远程服务器地址 "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"
    

第3步:配置远程服务器的SSH配置文件

登录到远程服务器,编辑或创建~/.ssh/sshd_config文件。确保以下配置项正确设置:

PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
PasswordAuthentication no
  • PubkeyAuthentication yes 启用基于公钥的认证。
  • AuthorizedKeysFile .ssh/authorized_keys 指定授权公钥文件的位置。
  • PasswordAuthentication no 禁用密码认证(可选,但推荐)。

第4步:重启SSH服务

配置完成后,重启SSH服务以使更改生效。根据你的系统类型,使用以下命令之一:

  • 对于使用systemd的系统:

    sudo systemctl restart ssh
    
  • 对于使用init.d的系统:

    sudo /etc/init.d/ssh restart
    

第5步:测试免密码登录

最后,回到本地计算机,尝试通过SSH连接到远程服务器:

ssh 用户名@远程服务器地址

如果系统没有提示你输入密码并且你成功登录,恭喜你!SSH免密码登录配置成功。

通过以上步骤,你可以轻松实现SSH免密码登录,享受更安全、更便捷的远程连接体验。