【转】MAC 配置ssh免密登录

配了挺多次免密登录,老是忘了,备份一下 

转载自知乎,如侵删。https://zhuanlan.zhihu.com/p/32279976

-----------------------------------------------------转载分割线-----------------------------------------------------------------------

Ok,是时候写一个教程让后人不被坑了。

首先,明确一下我们要做什么,让mac连接免密码ssh连上远程的机子,一般是ubuntu系统的(就是你买的阿里云,腾讯云之类的)。

note(给不懂ssh的新手们):ssh就是让你的自己在远程机子上打开一个shell,ssh就是secure shell。linux作为服务器是没有桌面系统的,所以你只要通过一个ssh工具在远程机子上打开一个shell,你就能控制这个远程的机子了。

我们把本地机子叫做为mac,远程机子叫做ubuntu(这个ubuntu也可以是centos,debian之类的)。

1. 首先在你的本地mac上打开一个shell,进入到~/.ssh目录,然后看一下该目录下的文件

cd ~/.ssh
ls // 看一下文件,看看有没有已经生成过的公私钥对

2.这边做分a,b两种情况:

(a). 第一种情况你没有生成过公私钥对(生成过这个目录下会有类似 xxx xxx.pub 的文件),或者你生成过,但是你想创建一个新的公私钥对。

ssh-keygen 
// 根据交互,输入你想要的名字(默认id_rsa),然后是密码,可以为空,生成公私钥对

ls // 这时候当前目录下会多了一对公私钥对(.pub结尾的是共钥匙)。

(b). 已经有一组公私钥对的可以不生成。

3.这一步是要把共钥复制到服务器上,可以使 ssh-copy-id 这个脚本工具

ssh-copy-id -i [公钥文件] user@host 
// user是你的ssh的用户,host是服务器地址,这时候还要输入密码。
// 例子:ssh-copy-id -i id_rsa.pub root@111.111.111.111

4.好一般别的系统到第三步就可以免密登陆了,但是mac并不这样。还要调用ssh-add。

ssh-add -K [你的私钥文件,就是那个不加.pub结尾的文件] 
// 例如ssh-add -K id_rsa
注意上面的shell命令都在~/.ssh目录下,中途请不要切换目录。

公私钥简介

公私钥是一个很聪明的发明,公钥是公开的。就像用户名,私钥则跟密码一样。比特币也是用了公私钥,比特币中公钥是钱包地址,但是你光有钱包地址不能证明你拥有这个钱包。只有你同时拥有对应的私钥,这个钱包才是你的。而要破解这个公私钥很难,需要极大的计算量。
原文地址:https://www.cnblogs.com/lizhang4/p/11652597.html