如何在 openSUSE 15.3 上配置 SSH 无密码登录
众所周知且普遍接受的OpenSSH 最佳安全实践之一是配置和使用公钥身份验证(又称无密码身份验证)。虽然这种方法从根本上是为了安全,但从轻松的角度看,它也易于使用,因为您不必在每次尝试登录服务器时都输入密码。
本指南将引导您完成在openSUSE 15.3上配置 SSH 无密码身份验证以及禁用密码身份验证所需的步骤。
测试环境:
- 带有 ssh 客户端的本地 Ubuntu – 192.168.56.1
- 远程 openSUSE 15.3 服务器 – 192.168.56.101
步骤 1:生成 SSH 公钥/私钥对
要创建密钥对,请使用ssh-keygen命令并-t
指定密钥类型。如果不使用任何参数,将生成 2048 位 RSA 密钥。默认情况下,私钥将存储在~/.ssh/id_rsa目录下,公钥将存储在~/.ssh/id_rsa.pub下。
请注意,您可以生成具有自定义名称的密钥对。此外,如果您打算使用密钥对进行交互式登录,您可以在生成密钥对时设置密码(与访问和使用密钥的密码同义)。
$ ssh-keygen
现在使用ls 命令确认密钥对已在~/.ssh目录下生成,如图所示。
$ ls -la .ssh/my_key*
第 2 步:将 SSH 密钥上传到远程 openSUSE 服务器
接下来,使用ssh-copy-id命令将公钥上传到远程openSUSE服务器,如下所示。使用标志指定公钥的路径,并在提示时输入您的 ssh 密码:-i
$ ssh-copy-id -i .ssh/my_key.pub sysadmin@192.168.56.101
提示:如果收到“从 192.168.56.101 端口 22:2 断开连接:身份验证失败次数过多,从 192.168.56.101 端口 22 断开连接”错误,请使用IdentitiesOnly=yes
以下命令中所述的选项。
$ ssh-copy-id -i .ssh/my_key.pub -o IdentitiesOnly=yes sysadmin@192.168.56.101
步骤 3:无需 SSH 密码即可连接到 openSUSE
现在验证远程无密码登录 openSUSE 服务器。尝试使用您的私钥登录,如下所示。当系统提示您提供密码时,请输入您的密码。
$ ssh -i .ssh/my_key sysadmin@192.168.56.101
步骤4:禁用SSH密码验证
警告:在禁用密码验证之前,请确保您已经设置并成功测试了无密码验证,否则您可能会被锁定在openSUSE服务器之外。
要禁用密码验证,请确保将PasswordAuthentication和ChallangeResponseAuthentication配置指令设置为no
,并将UsePAM设置为,yes
如下面的屏幕截图所示。
保存最近的设置并重新启动sshd守护进程/服务,如图所示。
$ sudo systemctl restart sshd
从现在开始,openSUSE服务器上任何尝试使用密码验证登录的用户都将遇到以下屏幕截图所示的错误。
目前就这些了。若要了解有关此主题的更多信息,请通过下面的反馈表与我们联系。