温馨提示×

Ubuntu SSH无密码登录如何实现

小樊
74
2025-03-02 05:32:31
栏目: 智能运维

在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。你可以直接按回车键使用默认位置。

接下来,系统会提示你输入一个可选的密码短语(passphrase)。为了实现无密码登录,你可以直接按回车键跳过这个步骤。

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