1.平常工做中,以SSH方式登陆服务器是常常作的事情,每次输入密码很烦,能不能不输入,经过OpenSSL的密钥验证的方式来实现呢?linux
2.生产服务器的维护,不免须要远程登陆,可是目前针对SSH密码暴力破解的攻击很是猖獗,所以禁用掉密码登陆的方式有助于提高服务器的安全性.安全
1.生成密钥对服务器
linux系系统可以使用如下命令:ssh
ssh-keygen -t rsa -b 2048
Windows系统可使用PuttyGen工具,生成密钥对.工具
2.将公钥上传至服务器,linux或Mac系统可经过命令ssh-copy-id -i 密钥文件名 xxx@serverIP 的方式上传.若是是Windows系统能够将公钥文件上传到服务器上,而后再添加到~./.ssh/authroized_keys文件中.code
3.此后,就能够在当前客户端免密码直接登陆服务器啦.server
若是公司的电脑已经按照上述方式设置了免密码登陆,想在家里也想一样免密码登陆,那么这个时候会有两个选择:文件上传
1.把公司电脑的私钥拷贝到家里的电脑,而后使用命令:io
ssh -i 私钥文件 root@serverAddress
这个方法的好处是始终只有一个私钥,坏处一样也很明显,就是同一个私钥再多台机器上散落,这违背了私钥的基本原则,即不能分发的原则.若是私钥被人拷贝走,后果很严重.登录
2.每台电脑都生成一个私钥对,而后将公钥上传到服务器.这样以来,将会有不少私钥对,若是有一台电脑的私钥被盗,那么能够经过删除这个电脑对应的服务端公钥来屏蔽这个私钥.
有了密钥配对方式的登陆后,能够禁用SSH的密码登陆,这样一来,直接把暴力破解SSH密码的这一条路给堵死了.
vi /etc/ssh/sshd_config .... .... PasswordAuthentication=no ....
须要注意的是,关闭密码登陆方式后,必定要保存好私钥,不然就再也登陆不了远程服务器了.