📅  最后修改于: 2023-12-03 14:56:02.611000             🧑  作者: Mango
在本文中,将介绍如何设置和使用没有密码的 SSH 登录到 Ubuntu PC。SSH(Secure Shell)是一种安全的远程登录协议,允许你在不安全的网络上安全地远程登录到 Linux 操作系统。
通常,我们需要使用用户名和密码来进行 SSH 登录。然而,为了方便和效率,有时我们希望能够直接使用密钥进行SSH登录,而无需输入密码。
首先,我们需要生成 SSH 密钥对。密钥对由一对密钥组成:私钥和公钥。私钥应该仅保留在本地,而公钥则需要复制到目标 Ubuntu PC 上。
在本地机器上打开终端,运行以下命令生成密钥对:
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
这里的 -t
参数用于指定生成密钥的类型,我们选择 RSA。-b
参数用于指定密钥的位数,一般为 4096。-C
参数用于指定一个注释,可以填写你的电子邮件地址。
根据提示,选择自定义的密钥文件名和位置,或直接按回车使用默认值。
在生成密钥对之后,你可以通过以下命令复制公钥到目标 Ubuntu PC:
ssh-copy-id user@hostname
将 user
替换为你的目标 Ubuntu PC 上的用户名,将 hostname
替换为目标 Ubuntu PC 的 IP 地址或主机名。
运行命令后,你需要输入目标机器的密码进行验证。输入正确的密码后,公钥将自动复制到目标机器的 ~/.ssh/authorized_keys
文件中。
现在,你可以使用以下命令无需密码登录到目标 Ubuntu PC:
ssh user@hostname
将 user
替换为目标 Ubuntu PC 上的用户名,将 hostname
替换为目标 Ubuntu PC 的IP地址或主机名。
为了更安全,你可以在成功验证之后禁用密码登录。这样,只有拥有相应公钥的私钥持有人才能够登录。
在目标 Ubuntu PC 上,打开 SSH 配置文件:
sudo nano /etc/ssh/sshd_config
找到 PasswordAuthentication
参数,将其值改为 no
:
PasswordAuthentication no
保存更改并关闭文件。
最后,重新加载 SSH 服务:
sudo systemctl reload ssh
现在,只有使用公钥登录才能访问目标 Ubuntu PC。
通过遵循本教程,你已经成功设置了没有密码的 SSH 登录到 Ubuntu PC。这将提高远程登录的安全性,并提供更便捷的访问方式。现在,你可以方便地使用 SSH 连接到目标 Ubuntu PC,而无需输入密码。