以前没有在VPS 上部署重要的东西,设置一个稍复杂的密码就可以。下面对记录一下VPS 禁止用户名+密码登录,仅使用密钥登录的过程。
生成SSH 公钥
确认是否已经有一个公钥,即检查.ssh
文件夹,以及文件夹中是否存在id_rsa
和 id_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
查看成功登录信息
查看当前登录用户信息
who命令:
who缺省输出包括用户名、终端类型、登陆日期以及远程主机。
who /var/log/wtmp
last
last 用户名
last -t 20181206160404
显示这个时间戳之前的登陆历史
客户端密钥备份
如果电脑重装了,就很难登录服务器,可以备份密钥,直接复制id_rsa
、id_rsa.pub
两个文件。当电脑重装或者想在其他电脑上登录主机,直接把这两个文件复制到 ~/.ssh/
目录下就行。
如果使用备份的id_rsa
文件出现下面的错误提示
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: UNPROTECTED PRIVATE KEY FILE! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0644 for 'id_rsa' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.
可以用更改文件属性的方法来解决
chmod 0600 id_rsa