无密码SSH,可以使用私钥/公钥登录到SSH服务器

原文链接:No password SSH – Login to a SSH server with private/public keys 由Jean-Luc Aufranc撰写。

如果你经常需要与服务器建立 SSH 连接,那么每次输入密码就很麻烦。而且,有时候还会有无法启动的问题。例如,在我要展示的例子中,我每次构建脚本时都使用 ssh 连接,那么手动输入密码在这里就是不可选的。

因此,将服务器和客户端配置为接受安全的 ssh 连接而且还无需输入密码会是一件很有用的事。那么如果要配置的话,必须要做的一件事就是要生成一个公钥/私钥对,并将公共部分复制到服务器端的适当位置。

所以,需要在用户的主目录中,在客户端机器上,键入:


-t 告知加密类型
-f 告知在哪里存储公钥/私钥对。在上述例子中,正在使用的是主目录中的 .ssh 目录

接着你会被要求输入密码,这个时候什么密码都不要输入,你只需按 <enter>键即可。
现在,转到 .ssh 目录,你会发现两个新文件: id_rsa 和id_rsa.pub。后一个是公共部分。现在,将公钥复制到服务器的机器中:


当然,这次你就需要输入密码。现在,登录到服务器机器并转到服务器端的 .ssh 目录:


然后将客户端的公钥添加到服务器上的已知公钥中:


这样操作完成之后,下次登录远程服务器时,你就不需要再输入密码了。如果这样还是不起作用,那么你可以尝试使用authorized_keys 而不是authorized_keys2,因为它可能是由你所使用的Linux 版本决定的。

请注意,使用上述方法之后,你的系统中不会有任何机器的IP 地址和特定用户变动,它仍然是安全的。

不过,去年 9 月的时候他们将 DSA 替换为 RSA了,因为 DSA 密钥已被 OpenSSH 弃用了。

备注:本篇文章早撰写于 2010 年 2 月更新修改于2020年9月。部分内容并非最新,仅供大家参考。

分享这篇文章
订阅评论
提醒
0 评论
内联反馈
查看所有评论