服务器使用ssh秘钥登录并禁止密码登录

时间:2021-10-12 06:54:00

问题:

最近在登录服务器的时候,每次都会有提示999+ falied login等字眼,意思就是自己的服务器密码正在被人暴力破解。想象以下,别人有了你的服务器的root登录密码,那么就可以对你的服务器为所欲为。所以为了解决这个问题,不妨采用ssh秘钥登录,并且设置为禁止密码登录。

生成秘钥:

使用命令生成秘钥

ssh-keygen

而后使用命令进秘钥文件重命名为authorized_keys,个人推荐自己在本地生成较长的秘钥后在上传到服务器里替换,这样比较方便而且更安全(秘钥长度更长)

# id_ras.pub 可换成自己用其他软件的生成的秘钥,例如xshell
mv id_rsa.pub authorized_keys

更改文件权限和目录权限:

chmod   authorized_keys
# 更改文件目录权限
chmod .ssh

修改配置文件:

这里生成秘钥后,客户端还不能直接使用秘钥登录,还需修改配置文件,使用如下命令:

vim /etc/ssh/sshd_config 

将里面的内容修改如下所示:

# PubkeyAuthentication yes 中将#删除,允许秘钥登录

PasswordAuthentication yes 中no修改为no,禁止密码登录

退出并保存;

重启sshd服务,使设置生效:

centos使用以下命令:

# 启动sshd服务
systemctl start sshd.service
#重启sshd服务
systemctl restart sshd.service
#设置sshd服务开机自动运行
systemctl enable sshd.service

Ubuntu使用以下命令:

service ssh restart

到这里,便大功告成,服务器便只允许秘钥登录。