📜  没有密码的 ssh pc ubuntu - Shell-Bash (1)

📅  最后修改于: 2023-12-03 14:56:02.611000             🧑  作者: Mango

没有密码的 SSH 登录到 Ubuntu PC

简介

在本文中,将介绍如何设置和使用没有密码的 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 文件中。

SSH 登录到 Ubuntu PC

现在,你可以使用以下命令无需密码登录到目标 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,而无需输入密码。