VPS(ubuntu)上使用SSH KEY证书密钥登陆

  1. 生成密钥
  2. 上传公钥
  3. 配置VPS

一键搞好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
  1. 第一项是证书的保存路径,把默认的#注释符删除,使其生效;
  2. 第二项是关闭密码登陆,同样把默认的#注释符删除,并把yes修改成no,关闭密码登陆;
  3. 第三项是SSH连接端口,可修改成其它端口

修改了以后,需要 service ssh restart (CentOS的是service sshd restart命令)重启SSH服务,使修改生效。

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

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


转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以邮件至 [email protected]