0%

Linux 系统设置免密登录

Linux 系统的免密登录功能通常是通过 SSH 的密钥认证机制来实现的,这样你就可以在不输入密码的情况下登录到远程系统。这不仅方便,而且比使用密码认证更安全。

以下是配置 SSH 免密登录的步骤:

1. 在本地系统生成 SSH 密钥对

首先,你需要在本地计算机上生成一对 SSH 密钥(一个私钥和一个公钥)。如果你已经有了 SSH 密钥对,可以跳过这一步。生成密钥对的命令如下:

ssh-keygen -t rsa -b 4096
  • -t rsa 指定密钥类型为 RSA,这是最常用的类型。
  • -b 4096 指定密钥长度为 4096 位,这比默认的 2048 位更安全。
    执行此命令后,系统会提示你输入文件保存路径(如果接受默认,直接按 Enter 键),以及设置密钥的密码(如果希望实现免密登录,此处直接按 Enter 键留空)。

2. 将公钥复制到远程服务器

生成密钥对后,你需要将公钥文件(默认是 ~/.ssh/id_rsa.pub)复制到远程服务器上你希望免密登录的账户的 ~/.ssh/authorized_keys 文件中。可以使用 ssh-copy-id 命令来自动完成这个过程:

ssh-copy-id user@hostname

如果远程服务器禁用了 ssh-copy-id 或者你希望手动完成这个过程,也可以使用 scp 将公钥文件传输到远程服务器,然后手动添加到 ~/.ssh/authorized_keys 文件中。

3. 测试免密登录

完成公钥复制后,尝试使用 ssh 命令登录远程服务器:

ssh user@hostname

如果一切设置正确,系统将不再提示你输入密码即可登录到远程服务器。

4. 注意事项

确保远程服务器的 ~/.ssh 目录以及 ~/.ssh/authorized_keys 文件的权限设置正确。通常,~/.ssh 目录的权限应该是 700 (即只有所有者有读写执行权限),authorized_keys 文件的权限应该是 600 (即只有所有者有读写权限)。

在一些老系统中,sshd 默认没有启用公钥登录,需要修改 /etc/ssh/sshd_config 配置文件将 RSAAuthenticationPubkeyAuthenticationAuthorizedKeysFile 启用,修改完成之后重启 sshd 服务。

如果在尝试免密登录时遇到问题,可以尝试在 ssh 命令后加上 -v 参数来启用详细模式,这样可以看到连接过程中的详细信息,帮助诊断问题。

通过上述步骤,你可以在 Linux 系统之间设置免密 SSH 登录。

  • 本文作者: 6x
  • 本文链接: https://6xyun.cn/article/70
  • 版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-ND 许可协议。转载请注明出处!