免密码SSH登陆服务器

场景

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
....

须要注意的是,关闭密码登陆方式后,必定要保存好私钥,不然就再也登陆不了远程服务器了.

相关文章
相关标签/搜索