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