免密码SSH登录服务器

原创
2015/08/03 21:05
阅读数 726

场景

1.日常工作中,以SSH方式登录服务器是经常做的事情,每次输入密码很烦,能不能不输入,通过OpenSSL的密钥验证的方式来实现呢?

2.生产服务器的维护,难免需要远程登录,但是目前针对SSH密码暴力破解的攻击非常猖獗,因此禁用掉密码登录的方式有助于提升服务器的安全性.

方法

1.生成密钥对

linux系系统可使用以下命令:

ssh-keygen -t rsa -b 2048

Windows系统可以使用PuttyGen工具,生成密钥对.

2.将公钥上传至服务器,linux或Mac系统可通过命令ssh-copy-id -i 密钥文件名 xxx@serverIP 的方式上传.如果是Windows系统可以将公钥文件上传到服务器上,然后再添加到~./.ssh/authroized_keys文件中.

3.此后,就可以在当前客户端免密码直接登录服务器啦.

多客户端登录

如果公司的电脑已经按照上述方式设置了免密码登录,想在家里也想同样免密码登录,那么这个时候会有两个选择:

1.把公司电脑的私钥拷贝到家里的电脑,然后使用命令:

ssh -i 私钥文件 root@serverAddress

这个方法的好处是始终只有一个私钥,坏处同样也很明显,就是同一个私钥再多台机器上散落,这违背了私钥的基本原则,即不能分发的原则.如果私钥被人拷贝走,后果很严重.

2.每台电脑都生成一个私钥对,然后将公钥上传到服务器.这样以来,将会有很多私钥对,如果有一台电脑的私钥被盗,那么可以通过删除这个电脑对应的服务端公钥来屏蔽这个私钥.

禁用密码登录

有了密钥配对方式的登录后,可以禁用SSH的密码登录,这样一来,直接把暴力破解SSH密码的这一条路给堵死了.

vi /etc/ssh/sshd_config
....
....
PasswordAuthentication=no
....

需要注意的是,关闭密码登录方式后,一定要保存好私钥,否则就再也登录不了远程服务器了.

展开阅读全文
加载中

作者的其它热门文章

打赏
0
10 收藏
分享
打赏
0 评论
10 收藏
0
分享
返回顶部
顶部