一、本地生成ssh_key

1
ssh-keygen -t ed25519 -C "yourname"

一路回车,不设置 passphrase(如果设置了密码短语,push 时还是要输一次,不能算完全免密)。

生成后密钥文件在:

1
2
3
C:\Users\你的用户名\.ssh\id_ed25519      # 私钥,千万别泄露

C:\Users\你的用户名\.ssh\id_ed25519.pub  # 公钥,我们要用它

查看公钥内容:

1
cat ~/.ssh/id_ed25519.pub

二、服务器:把公钥加进 git 用户的 authorized_keys

1、登录服务器,找到 git 用户的家目录,进入 .ssh 目录:

1
ssh git@yourserver.com

2、在服务器上执行

1
2
3
4
5
6
7
# 如果还没有 .ssh 目录
mkdir -p ~/.ssh
chmod 700 ~/.ssh

# 编辑 authorized_keys,把刚才复制的公钥粘贴进去
vim ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys

三、本地:测试免密登录

1
ssh git@yourserver.com

登陆成功,说明免密登录设置成功。

四、本地:测试免密 push

1
git push origin master

如果出现 Permission denied (publickey).,说明没有成功,需要检查一下公钥是否正确添加到服务器上。

如果出现 Everything up-to-date,说明成功,以后就可以免密 push 了。