每次新建一个服务器使用ssh连接时,都要输入密码,每次配置都会折腾很多次,一开始不懂公私钥的概念,所以这次抽时间学习一下。本文给出mac设置公私钥免密登录的正确步骤。

开始

1、在MacOS和Linux的终端下,登陆远程服务器一般需要:

ssh 【用户名】@【IP地址】 -p 【端口号】

然后输入密码进行登录。

可以利用公钥加密的方式实现免密登陆。

2、首先在本地~/.ssh目录下生成SSH私钥和公钥(如果已经存在则无需重新生成):

ssh-keygen -t rsa

上述指令中-t表示密钥类型是rsa

  • 第一次提示是密钥的文件及路径

image

  • 第二次提示让输入密码,可以留空。命令运行后会得到HongKang(私钥)和HongKang.pub(公钥)两个文件。

image

3、接下来要把公钥文件的内容写到远程服务器的~/.ssh/authorized_keys文件中,如果远程服务器上没有这个文件则自己创建。

ssh-copy-id -i [公钥文件] [远程服务器用户名]@[远程服务器IP]
# user是你的ssh的用户,host是服务器地址,这时候还要输入密码。
# 例子:ssh-copy-id -i /Users/anqin/.ssh/passwords/HongKong.pub root@114.114.114.114
  • 输入[远程服务器密码] ps:密码是隐藏的

image

  • 显示这个代表成功

image

4、ssh-add (mac的坑点) 【可选,部分不需要配置也可以免密登陆,本人就是】

ssh-add -K [你的私钥文件,就是那个不加.pub结尾的文件] 
# 例如,ssh-add -K id_rsa

5、在~/.ssh/config 文件中记录以下配置:

Host [服务器别名]
  HostName [IP地址]
  Port  [端口号]
  User  [用户名]
  IdentityFile ~/.ssh/HongKong # [你的私钥文件,就是那个不加.pub结尾的文件] 

6、在控制台输入 ssh [刚刚配置的服务器别名] 即可连接成功。