VPS使用中,你还是密码登陆就out,要是换成密钥登陆,安全性就能拉高一个档次了。
网上的教程是要你新建一个.ssh目录,然后上传公钥,其实,这只是下面一条命令就能完成的事情,
mkdir -p /root/.ssh && chmod 600 /root/.ssh && echo xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx > /root/.ssh/authorized_keys && chmod 700 /root/.ssh/authorized_keys
Note:记得将上面xxxxxxxxxx
部分替换成你的公钥的字串哦,记得保管好你的私钥,丢了私钥,神仙也救不了你。
还没有密钥?那就先生成密钥,使用 xShell, 打开 工具 --- 新建用户密钥生成向导
然后密钥类型选择RSA (兼容最好),至于长度随意,长度短了,生成的速度和以后登陆验证速度就快,而长度长了,安全性更高。2048应该刚刚好,也可以将1024/2048/3072三个等级的密钥都生成,按自己实际情况去使用。
生成之后,会有下面的提示,这个就是你的公钥,也就是将这段字串替换上面命令的xxxxxx部分,把它上传到服务器上的。公钥不用特意保管,它是跟着你私钥一对,私钥在,公钥也会在一起。但是一定要注意保管你的私钥,将它导出保管好,比如将私钥加密码压缩成rar包,然后放到多个网盘存档。一旦丢失了私钥,后果很严重!
嗯,现在密钥有了,也上传了,剩下只需要修改下 /etc/ssh/sshd_config
这个配置文件,将密钥登陆功能打开,关闭掉密码登陆,随手也把默认的22端口改成其它的。
主要是修改以下三项:
#AuthorizedKeysFile %h/.ssh/authorized_keys
#PasswordAuthentication yes
Port 22
第一项是证书的保存路径,把默认的#
注释符删除,使其生效;
第二项是关闭密码登陆,同样把默认的#
注释符删除,并把yes
修改成no
,关闭密码登陆;
第三项是SSH连接端口,可修改成其它端口
Note:修改了以后,需要 service ssh restart
(CentOS的是service sshd restart
命令)重启SSH服务,使修改生效。 话说,一定要注意的是,重启以后,不要急着关闭原来SSH窗口,因为第三项涉及到修改了端口,你最好先新开一个标签尝试新端口SSH链接是否成功。如果不行,要么修改有错,要么iptables防火墙严厉没放行新端口中,这时候原来还链接着SSH窗口就是你的救命窗口了。 我就试过SB一回,重启SSH就顺手把窗口关掉,结果旧的端口已失效,新的端口iptables没放行,整个人傻眼了……
如没问题,你现在已经从密码登陆改成只能密钥登陆,密码是可以猜解,但密钥目前是无法破解,只要保管好你的私钥,不被公开,安全性已大为增强。