windows下给 Git Bash 添加ssh key私钥实现git免密


git如果使用http/https协议,每次push时都会提示输入用户名和密码,使用ssh秘钥(git协议)则可以避免这一麻烦。

1.添加ssh key私钥

依次执行以下命令:

 

exec ssh-agent bash
eval ssh-agent -s
ssh-add "C:\Users\Administrator\.ssh\id_rsa"

 

说明:
1.命令ssh-add "C:\Users\Administrator\.ssh\id_rsa"中,引号中的路径就是你私匙文件的路径,路径需要使用英文双引号包裹。

 

Identity added: C:\Users\Administrator\.ssh\id_rsa (C:\Users\Administrator\.ssh\id_rsa)

 

提示Identity added :说明已添加成功
添加成功后在C:\Users\Administrator\.ssh\目录下会有三个文件


id_rsa
id_rsa.pub
known_hosts

 

需要注意的是在ssh add 之前执行一条 “ssh-add -D” 命令,这是用来清除已有的私钥。

2.测试ssh key


ssh -T git@192.168.31.1

 

说明:
1.命令"ssh -T git@192.168.31.1"中,@后面替换成git服务器的ip地址。

提示 Welcome to GitLab, @xxx! 说明加入ssh成功。@后面的xxx为git用户名。

就是免密push/pull代码了。

遇到的问题

1.windows下git pull/push提示输入密码,git@192.168.31.1's password:Permission denied, please try again.
原因:SSH密钥对不匹配。这个错误主要密匙全路径名不相符,结果导致本地的SSH工具无法找到到正确的密匙。
解决:首先检查生成的两个文件id_rsa和id_rsa.pub是否确实在~/.ssh路径下,如过不是,把它们移过去。
其次是非常重要的一点,如果你在步骤2中自定义了ssh key的文件名,那么原因就在于你的命名与ssh内设定的名字不一致,因此需要手动添加秘钥。很多教程大概不是windows系统。。直接让输入命令

 

ssh-add ~/.ssh/你的文件名

 

其他常用操作

1.在git bash输入remote -v查看当前的remote url


git remote -v


若得到的连接是以http/https开头的,是http/https协议,git开头的是git协议

2.git从http/https协议替换成git协议


git remote set-url origin git@192.168.31.1:8099/test.git

 

done!

posted on 2020-06-16 10:18  zqifa  阅读(5386)  评论(0编辑  收藏  举报

导航