问题:
最近在登录服务器的时候,每次都会有提示999+ falied login等字眼,意思就是自己的服务器密码正在被人暴力破解。想象以下,别人有了你的服务器的root登录密码,那么就可以对你的服务器为所欲为。所以为了解决这个问题,不妨采用ssh秘钥登录,并且设置为禁止密码登录。
生成秘钥:
使用命令生成秘钥
ssh-keygen
而后使用命令进秘钥文件重命名为authorized_keys,个人推荐自己在本地生成较长的秘钥后在上传到服务器里替换,这样比较方便而且更安全(秘钥长度更长)
# id_ras.pub 可换成自己用其他软件的生成的秘钥,例如xshell mv id_rsa.pub authorized_keys
更改文件权限和目录权限:
chmod 600 authorized_keys # 更改文件目录权限 chmod 700 .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
到这里,便大功告成,服务器便只允许秘钥登录。