众所周知并且普遍接受的OpenSSH 最佳安全登录方法之一是配置和使用公钥身份验证,即无密码身份验证。尽管这种方法从根本上是出于安全考虑,但从更轻松的角度来看,它还易于使用,因为不必在每次尝试登录远程服务器时都输入密码。
在本文当中,小编将简单介绍在openSUSE 15.3系统上配置SSH无密码身份验证以及禁用密码身份验证的大致过程,感兴趣的小伙伴可以了解下。
测试环境:
- 带有ssh客户端的本地Ubuntu – 192.168.56.1
- 远程openSUSE 15.3服务器 – 192.168.56.101
第 1 步:生成SSH公钥/私钥对
要创建密钥对,请使用带有-t
标志的ssh-keygen命令来指定密钥类型。如果不带任何参数使用,将生成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服务器。使用-i
标志指定公钥的路径,并在出现提示时输入ssh密码,命令如下:
$ ssh-copy-id -i .ssh/my_key.pub sysadmin@192.168.56.101
提示:如果收到“ Received disconnect from 192.168.56.101 port 22:2: Too many authentication failures, Disconnected from 192.168.56.101 port 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服务器上尝试使用密码验证登录的用户都将遇到以下屏幕截图所示的错误:
这样以后登录openSUSE服务器就无须输入密码了,既安全又省事。
总结
以上就是在openSUSE 15.3系统中配置SSH无密码登录的简单方法,配置过程还是比较简单的,仅供参考。其实,目前配置主机A免密登录到主机B的方法有两种,本文采取的是方法二,相对来说简单些。
方法一:
- 在主机A生产密钥对: ssh-keygen -t rsa, 会在.ssh目录下产生密钥文件
- 拷贝主机A的公钥到主机B: scp id_rsa.pub
- 将主机A的公钥加到主机B的授权列表.ssh/authorized_keys(若不存在,手动创建): cat id_rsa.pub >> authorized_keys
- 授权列表authorized_keys的权限最好设置成600,chmod 600 authorized_keys
方法二:
- #进入到我的home目录 cd ~/.ssh
- ssh-keygen -t rsa (四个回车)
- 执行完这个命令后,会生成两个文件id_rsa(私钥)、id_rsa.pub(公钥)
- 将公钥拷贝到要免登陆的机器上: ssh-copy-id localhost
推荐阅读: