SSH 免密码访问 Git 服务器 Bitbucket/GitHub
安装配置步骤
这里主要介绍 Windows 下的,Linux 下类似。
Git 服务器 GitHub 或者 Bitbucket 的代码签出和签入通常有 HTTPS 和 SSH 两种方式。前者每次操作都要密码,只适合代码修改少的项目。后者适合程序员们的常规开发。
大概步骤:
- 首先安装 git-xx-preview,这是 Git 客户端的命令行方式。
打开 Git Bash,在命令行里输入
1
ssh-keygen.exe -C"邮箱地址" -t rsa
然后一路回车,不要输入密码。然后把
id_rsa.pub
加到 Bitbucket 的 SSH Key 里。- 之后 clone 直接用对应项目的 SSH 访问方式的地址。
官方手册: https://help.github.com/articles/generating-ssh-keys
会出现的一些问题
TortoiseGit 注意安装方式
Windows 下 GUI 形式的 Git 客户端 TortoiseGit。安装时需要 OpenSSH, Git default SSH Client
方式安装,否则不能使用 SSH 这种免密码的方式了。
升级 TortoiseGit 后,发现 pull 之前的代码出现错误
如下错误:1
Disconnected: no supported authentication methods available
这是因为升级后的 TortoiseGit 将 SSH client 指向了自己的那个 plink 客户端。这个升级后的客户端不是之前 ssh-keygen 生成密钥对应的那个,所以建立不了 SSH 链接。
解决办法两个:
- 最简单的办法,将
TortoiseGit->Settings->Network->SSH
的地址更改为那个 git-xx-preview 里的,我的改为了E:\dev-tool\Git\bin\ssh.exe
。 - 自己重新按上边的流程重新设置一遍吧。
多个git账号共存的配置
http://4simple.github.io/docs/multipleSSHkeys/
注意事项:~/.ssh/config
文件里的配置要注意,1
2
3Host xxx.xxx.com
Hostname xxx.xxx.com
IdentityFile /c/Users/username/.ssh/xxx_rsa
这里 Host 和 Hostname 最好完全一致为你对应的 Git 仓库网站的全域名,否则偶尔仍提示需要输入密码,即仍不通过。