在这篇文章中,我们将解释如何在Linux操作系统服务器中设置没有密码的SSH。我们将使用命令行终端应用程序来实现这一目的。要打开命令行终端,请使用键盘快捷键。+alt+t>
我们已经在Ubuntu20.04系统上解释了本文中提到的步骤。在Debian和之前的Ubuntu版本中也可以遵循同样的步骤。
按照下面的步骤在您的Linux系统上设置无需密码的SSH。
在本地计算机上生成新的SSH密钥对
第一步将是在本地系统上生成一个新的SSH密钥。为此,请在终端中发出以下命令:
$ssh-keygen-trsa
按Enter键接受所有字段为默认值。
上面的命令将创建密钥对,即公共密钥和私有密钥。私钥保留在系统上,而公钥则共享。这些密钥存储在.ssh文件夹中。
您可以输入以下命令来查看生成的密钥对:
$ls–l.ssh
将公钥复制到远程服务器
在下一步中,将公用密钥复制到要从本地系统访问的远程服务器系统上,而无需输入密码。我们将使用大多数Linux发行版中默认提供的ssh-copy-id命令。此命令会将公共密钥id_rsa.pub复制到远程系统中的.ssh/authorized_keys文件中。
ssh-copy-id的语法如下:
$ssh-copy-idremote_user@remote_IP
在我们的示例中,命令为:
$ssh-copy-idtin@192.168.72.136
在远程系统上,您可以通过查看authorized_keys文件来验证公钥的传输。
$cat.ssh/authorized_keys
将远程系统上的authorized_keys文件的权限设置为600。请使用以下命令:
$chmod600.ssh/authorized_keys
将远程系统上的.ssh目录的权限设置为700。使用以下命令来这样做:
$chmod700.ssh
将私钥添加到本地服务器上的SSH身份验证代理
在我们的本地计算机中,我们会将私钥添加到SSH身份验证代理。这将使我们无需每次都输入密码即可登录到远程服务器。
这是执行此操作的命令:
$ssh-add
使用SSH密钥登录到远程服务器
完成上述步骤后,尝试登录到远程服务器。这次,您无需输入密码即可登录到远程服务器。
这就是在Ubuntu20.04系统中设置不带密码的SSH登录所需要的全部内容。请记住,您可以与任何人共享公钥,但绝不能共享您的私钥。拥有私钥的任何人都将能够登录到具有匹配公钥的任何系统。
