这个世界上好人很多,坏人也不少,做人总要防着点,如果你稍微熟悉点linux操作命令,那么请查看你vps的登陆日志,里面会充斥着来自全世界ip的难以计数的登陆失败提示,是的,你的vps一直有人在进行爆破登陆,或者说,有人总在想办法打开你家的锁。是不是有些吃惊?所以每个vps初学教程里面都会一再强调请设置一个高强度的密码。
但是,不怕万一就怕一万,要是你的密码被无意中破解了怎么办?这可是大事不妙啊。所以,让我来给你们介绍一种更安全的认证登陆方式——sshkey密钥登陆。这个类似淘宝的证书登陆之类的,高强度的随机密钥,基本上可以确保一切万无一失。
一.生成密钥
虽然puttygen(putty组件)也有这个功能,但是我一般习惯于使用xshell来实现,因为不需要额外的配置sshkey-agency进行后台监听,也不用另外导入。xshell这个软件对于非商业用途是免费的,而且功能并没有被阉割,大家可以去它的官网下载。
按照如下步骤我们生成密钥
密钥的长度越长强度越大,但是过长也会有不少问题,比如许多主机商的在线添加sshkey不支持等等问题,建议2048或者4096位
名字随意,加密密码就看你了,如果密钥被人窃取(复制),那么密码是你最后一道防线
现在我们已经创建完了密钥,如何将其导入vps并关闭密码登陆呢?
二.导入密钥并关闭密码登陆
cd &&mkdir .ssh&&cd .ssh&&vi authorized_keys
将如下位置内容复制粘贴,然后退出编辑
选中你的密钥点击属性
复制粘贴
运行如下命令对公钥进行权限修改
chmod 600 authorized_keys restorecon -R -v /root/.ssh chattr -i authorized_keys
后面两条命令主要是针对centos的selinux安全设置进行修改,防止公钥无法生效
接着我们修改ssh登录配置文件
vi /etc/ssh/sshd_config
把RSAAuthentication和PubkeyAuthentication两行前面的#注释去掉。然后将PasswordAuthentication yes改成no。
最后我们重启ssh进程
Debian/Ubuntu执行:/etc/init.d/ssh restart CentOS执行:/etc/init.d/sshd restart
三.使用sshkey登录
添加连接,在用户身份验证中的验证方法下拉菜单里选中Public Key
用户名一般是root,如果为了安全不用root登录的话那么之前创建公钥文件的位置也要进行相应的修改,将其创建到用户目录即可。如果之前设置了密码,这里也要输入。
然后保存连接,我们就能登录了。
最后简单提一下,flashfxp等支持sftp的文件管理工具一般也都支持密钥登陆,将xshell中的密钥导出然后再导入相应软件,最后设置验证方式即可。
文章评论
我太笨了,这个是远程登录么?
@David 是啊,只是由普通的密码认证的SSH登陆变成了由密钥认证
@Senra 防止密码被窥探,只是如果密码文件丢了,岂不更惨了?
@David 所以要保管好啊,我个人SSH私钥是加密的,然后丢到dropbox啥的网盘里,不怕丢也安全