温馨提示×

Ubuntu SSH无密码登录怎么实现

小樊
60
2025-05-13 16:52:48
栏目: 智能运维

在Ubuntu系统中实现SSH无密码登录,可以通过生成SSH密钥对并将其添加到远程服务器的授权密钥列表中来实现。以下是详细步骤:

1. 生成SSH密钥对

首先,在本地机器上生成SSH密钥对。打开终端并运行以下命令:

ssh-keygen -t rsa -b 4096
  • -t rsa 指定使用RSA算法。
  • -b 4096 指定密钥长度为4096位。

运行上述命令后,系统会提示你输入密钥保存的位置和文件名。默认情况下,密钥会保存在 ~/.ssh/id_rsa(私钥)和 ~/.ssh/id_rsa.pub(公钥)。

你可以直接按回车键接受默认位置和文件名,或者输入自定义路径和文件名。

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

接下来,将生成的公钥复制到远程服务器的 ~/.ssh/authorized_keys 文件中。你可以使用 ssh-copy-id 命令来完成这一操作:

ssh-copy-id user@remote_host
  • user 是远程服务器上的用户名。
  • remote_host 是远程服务器的IP地址或域名。

运行上述命令后,系统会提示你输入远程服务器用户的密码。输入密码后,公钥会被复制到远程服务器的 ~/.ssh/authorized_keys 文件中。

3. 测试无密码登录

完成上述步骤后,你可以尝试通过SSH连接到远程服务器,看看是否可以无密码登录:

ssh user@remote_host

如果一切配置正确,你应该能够直接登录到远程服务器,而不需要输入密码。

4. 配置SSH客户端(可选)

如果你希望进一步简化SSH连接过程,可以在本地机器的 ~/.ssh/config 文件中添加配置。打开或创建该文件并添加以下内容:

Host remote_host
    HostName remote_host_ip_or_domain
    User user
    IdentityFile ~/.ssh/id_rsa
  • remote_host 是你在 ~/.ssh/config 文件中为远程服务器定义的别名。
  • remote_host_ip_or_domain 是远程服务器的IP地址或域名。
  • user 是远程服务器上的用户名。
  • IdentityFile 是你的私钥文件路径(如果与默认位置不同)。

保存文件后,你可以直接使用别名连接到远程服务器:

ssh remote_host

通过以上步骤,你应该能够在Ubuntu系统中实现SSH无密码登录。

0