Linux一键搞定部署SSH证书登录,从此SSH证书登陆更安心 Linux系统 运维技术

admin 2018-01-06 7460

VPS使用中,你还是密码登陆就out,要是换成密钥登陆,安全性就能拉高一个档次了。网上的教程是要你新建一个.ssh目录,然后上传公钥,其实,这只是下面一条命令就能完成的事情,

mkdir -p /root/.ssh && chmod 600 /root/.ssh && echo xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx > /root/.ssh/authorized_keys && chmod 700 /root/.ssh/authorized_keys

mkdir -p /root/.ssh && chmod 600 /root/.ssh && echo xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx > /root/.ssh/authorized_keys && chmod 700 /root/.ssh/authorized_keys

Note:记得将上面红色xxxxxxxxx部分替换成你的公钥的字串,记得保管好你的私钥,丢了私钥,神仙也救不了你。

还没有密钥?那就先生成密钥,使用 xShell, 打开 工具 --- 新建用户密钥生成向导

然后密钥类型选择RSA (兼容最好),至于长度随意,长度短了,生成的速度和以后登陆验证速度就快,而长度长了,安全性更高。2048应该刚刚好,也可以将1024/2048/3072三个等级的密钥都生成,按自己实际情况去使用。

生成之后,会有下面的提示,这个就是你的公钥,也就是将这段字串替换上面命令的xxxxxx部分,把它上传到服务器上的。公钥不用特意保管,它是跟着你私钥一对,私钥在,公钥也会在一起。但是一定要注意保管你的私钥,将它导出保管好,比如将私钥加密码压缩成rar包,然后放到多个网盘存档。一旦丢失了私钥,后果很严重!

嗯,现在密钥有了,也上传了,剩下只需要修改下 /etc/ssh/sshd_config 这个配置文件,将密钥登陆功能打开,关闭掉密码登陆,随手也把默认的22端口改成其它的。

主要是修改以下三项:


#AuthorizedKeysFile .ssh/authorized_keys

#PasswordAuthentication yes

Port 22


第一项是证书的保存路径,把默认的#注释符删除,使其生效;

AuthorizedKeysFile .ssh/authorized_keys

第二项是关闭密码登陆,同样把默认的#注释符删除,并把yes修改成no,关闭密码登陆;

PasswordAuthentication no

第三项是SSH连接端口,可修改成其它端口

Port 22 例如:Port 222

Note:修改了以后,

需要重启SSH服务 service ssh restart 

(CentOS的是service sshd restart命令)重启SSH服务,使修改生效。 


话说,一定要注意的是,重启以后,不要急着关闭原来SSH窗口,因为第三项涉及到修改了端口,你最好先新开一个标签尝试新端口SSH链接是否成功。如果不行,要么修改有错,要么iptables防火墙严厉没放行新端口中,这时候原来还链接着SSH窗口就是你的救命窗口了。


我就试过SB一回,重启SSH就顺手把窗口关掉,结果旧的端口已失效,新的端口iptables没放行,整个人傻眼了……


如没问题,你现在已经从密码登陆改成只能密钥登陆,密码是可以猜解,但密钥目前是无法破解,只要保管好你的私钥,不被公开,安全性已大为增强。


最新回复 (0)
全部楼主
    • MSDN,我告诉你(中文站)
      2
        登录 注册 获取赞助码
返回