引言

在Ubuntu等Linux发行版中,使用SSH密钥对进行登录是一种既安全又方便的认证方式。通过设置SSH密钥,您可以避免在每次登录时输入密码,同时也能提高安全性。以下是一篇详细的指南,帮助您在Ubuntu中设置SSH密钥,只需5个简单的命令行操作。

第一步:生成SSH密钥对

首先,您需要在本地计算机上生成SSH密钥对。打开终端,并执行以下命令:

ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

这条命令会生成一个4096位的RSA密钥对。-C参数用于添加一个注释,通常是您的电子邮件地址,以便将来识别密钥。

系统将提示您为私钥设置密码。这会增加额外的安全性,但您可以选择不设置密码,以便可以无密码登录。

第二步:复制公钥到服务器

将生成的公钥添加到服务器的~/.ssh/authorized_keys文件中。首先,打开本地计算机的~/.ssh/id_rsa.pub文件,并将内容复制。

然后,登录到Ubuntu服务器,并在终端中执行以下命令:

mkdir -p ~/.ssh
chmod 700 ~/.ssh
touch ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys

这将在您的用户目录中创建.ssh目录和authorized_keys文件,并设置相应的权限。

接下来,将复制的公钥内容粘贴到authorized_keys文件中:

echo 'YOUR_PUBLIC_KEY' >> ~/.ssh/authorized_keys

替换YOUR_PUBLIC_KEY为您复制的公钥内容。

第三步:配置SSH客户端

为了确保SSH客户端使用新的密钥对,您可能需要将其添加到SSH客户端的配置文件中。在Windows上,这通常在C:\Users\YourUsername\.ssh\config文件中完成。

在Linux或macOS上,编辑~/.ssh/config文件,并添加以下内容:

Host yourserver
  HostName yourserver.example.com
  User your_username
  IdentityFile ~/.ssh/id_rsa

替换yourserveryourserver.example.comyour_username为您的服务器信息。

第四步:测试SSH密钥登录

现在,您应该能够使用SSH密钥对登录到服务器。在终端中,执行以下命令:

ssh your_username@yourserver.example.com

如果您设置了密码,系统将提示您输入密码。如果没有设置密码,系统将自动登录。

第五步:禁用密码登录(可选)

为了进一步提高安全性,您可以禁用密码登录。在服务器上,编辑/etc/ssh/sshd_config文件:

sudo nano /etc/ssh/sshd_config

找到PasswordAuthentication行,并将其值更改为no

PasswordAuthentication no

保存并关闭文件。然后,重启SSH服务以应用更改:

sudo systemctl restart ssh

现在,您的Ubuntu服务器仅接受SSH密钥登录,从而提高了安全性。

结论

通过以上5步,您已经成功在Ubuntu中设置了SSH密钥。这不仅简化了登录过程,还增强了安全性。在需要频繁登录服务器的情况下,SSH密钥设置是一个非常有用的技巧。