配置ssh使用密钥登录,禁止口令登录
使用秘钥登录,可以免去输入密码头痛问题,也能提高安全性。在服务器上搞这个的动机不是上面的两个原因,主要是公司有个哥们老使用公司的服务器,做代理搞自己的东西, 悲催的是被老板发现了。本来想着用这个方法防止他老去搞这个事,后来发现虽然给他制造了一点麻烦,但是并不能解决“内奸”这个社会工程学问题。 配置的过程中一直无法实现禁用口令。最后发现是有个配置选项参考文章都没有提及。
故简要的记述一下整个配置的流程。
ssh 登录的原理
本地机器使用私钥加密一个字符串,发送给服务器,服务器使用公钥验证通过,说明是个合法的用户,然后就直接可以登录了。
公钥秘钥生成
可以在本地也可以在服务器生成,下面是在本地生成
ssh-keygen -t rsa
运行结束以后,在\(HOME/.ssh/目录下,会新生成id_rsa.pub和id_rsa
两个文件。前者是公钥,后者是私钥。 ## 上传公钥
然后把公钥文件中的内容添加到服务上的`\)HOME/.ssh/authorized_key文件末尾(或者是下面配置文件中AuthorizedKeysFile 选项指定文件的末尾,默认值是
$HOME/.ssh/authorized_key`)。
修改配置
ssh
服务启动的时候使用配置文件/etc/ssh/sshd_config
中的配置。ssh使用密钥登录必须配置如下两项
1 |
|
禁止口令登录
我看到的参考文档都只是要求修改配置文件中的一个选项如下
PasswordAuthentication no
但是并没有什么乱用,用口令该怎么登录还是怎么登录。还应该修改配置中的另外一个选项如下:
ChallengeResponseAuthentication no
/etc/init.d/sshd reload
ssh
服务重启后,问题解决。。。
小结
简单来说就是
- 首先生成公钥、秘钥。
- 在服务器中authorized_key 文件中添加公钥,私钥发送给登录用户。
- 然后修改服务器中的下面几个配置选项:
1 |
|
扩展阅读 ^_^
配置ssh使用密钥登录,禁止口令登录
http://blog.soul11201.com/2016/08/08/ssh/