用SSH 密钥登录VPS

以前没有在VPS 上部署重要的东西,设置一个稍复杂的密码就可以。下面对记录一下VPS 禁止用户名+密码登录,仅使用密钥登录的过程。

生成SSH 公钥

确认是否已经有一个公钥,即检查.ssh文件夹,以及文件夹中是否存在id_rsaid_rsa.pub文件,有.pub后缀的文件就是公钥,另一个文件则是密钥。如果不存在,或者干脆连.ssh文件夹都没有,可以进行创建。如果存在,就直接把id_rsa.pub内容输出,粘贴的服务器的相关文件。

$ cd ~/.ssh
$ ls

可以用ssh-keygen来创建

默认公钥的位置(.ssh/id_rsa),然后它会让你重复一个密码两次,如果不想在使用公钥的时候输入密码,可以留空。

更改VPS sshd 配置

编辑sshd 配置文件 /etc/ssh/sshd_config

找到并修改为下面的样子:

RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile      %h/.ssh/authorized_keys

PasswordAuthentication no

添加公钥

打开文件/.ssh/authorized_keys, 把本地的id_rsa.pub 内容粘贴到里面,保存退出

重启sshd 服务

service sshd restart

其它安全措施

上面所说的登录方式只是最基本的安全措施,还有比如更改ssh 默认端口、禁止root用户登录、使用denyhosts、启用iptables限制等等。

查看尝试暴力破解机器密码的人

grep "Failed password for root" /var/log/auth.log | awk '{print $11}' | sort | uniq -c | sort -nr | more
Relative Articles