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