Mac下ssh免密码登录

来源:互联网 发布:初学java用什么编译器 编辑:程序博客网 时间:2024/05/17 21:43

每次ssh远程登录Mac都需要密码,很烦人,接下来我们就来使用公钥私钥的方式,来ssh远程登录Mac免密码

本文示例为Mac远程登录Mac,其它平台应该类似,可以作为参考。


1,生成公钥和私钥(客户端Mac上操作)

打开终端(命令行),执行下边的命令,一路回车,即可得到公钥和私钥。

ssh-keygen -t rsa

公钥和私钥就放在 ~/.ssh目录下,如下图:(如何显示隐藏文件夹)


其中,id_rsa为私钥,id_rsa.pub为公钥,它们都是文本文件,可以用任何文本编辑器打开。

如果在该文件夹下有名为“known_hosts”的文件,把该文件删掉。可以把它看做一个缓存文件,目标主机发生变化时,缓存可能导致验证不正确。


2,在远程主机上添加信任的公钥(远程主机Mac上操作)

打开远程Mac主机,进入到~/.ssh目录,打开名字为“authorized_keys”的文本文件(没有的话,就创建它),然后把客户端创建的公钥添加去,如下图:


如上图,我添加了两台Mac的公钥。

至此,所有操作就算完成了,所有在远程主机“authorized_keys”文件里添加了公钥的Mac客户端,远程登录时,都不再需要输入密码了。


原理猜想

ssh远程登录时,应该是先自动从 ~/.ssh目录中,寻找后缀名为.pub的公钥文件,然后将这个公钥传输给远程主机,远程主机拿到客户端的公钥后,去自己的 ~/.ssh目录下的“authorized_keys”文件中比对,看客户端的公钥是否authorized_keys文件中:在的话,则直接信任并登录成功;不在的话,则需要登录密码。

0 0
原创粉丝点击