环境:Centos 7.6
需求:禁用密码登录,只允许私钥登录
ssh
公钥密钥[root@localhost ~]# 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
完成~