环境:Centos 7.6
需求:禁用密码登录,只允许私钥登录

生成ssh公钥密钥

ssh-keygen -t rsa
-t  rsa    是指采用rsa加密方式的公钥/私钥对。
-b         是指公钥/私钥对的长度,一般为1024,2048。默认为2048字节。

如图:
公钥私钥默认存放的路径为/root/.ssh/
在这里插入图片描述
/root/.ssh目录生成的文件:
在这里插入图片描述

修改ssh相关配置

修改sshd_config文件,路径为/etc/ssh/sshd_config

[root@localhost ~]# vim /etc/ssh/sshd_config 
配置密钥登录系统

注:修改配置文件前,尽量先备份初始配置文件。
在这里插入图片描述
默认情况下,需要将公钥内容导入authorized_keys文件中,并将私钥拷贝到用来登陆服务器的终端。这里我修改成test_keys了。文件名称无所谓,只要与之对应即可。

[root@localhost .ssh]# cat id_rsa.pub >> test_keys

在这里插入图片描述
如果没有修改sshd_config文件里面的AuthorizedKeysFile参数,则:

[root@localhost .ssh]# cat id_rsa.pub >> authorized_keys

配置完成后,将私钥文件id_rsa下载下来,用于密钥登录。如果生成密钥时没有配置密码,密码框则不需要填写。
在这里插入图片描述

禁止密码登录

禁止密码前,请先确认密钥是否能正常登录。
修改/etc/ssh/sshd_config

[root@localhost ~]# vim /etc/ssh/sshd_config 

在这里插入图片描述
PasswordAuthentication参数改成no
重启sshd服务

[root@localhost ~]# systemctl restart sshd

完成~

Logo

更多推荐