为 git 添加 ssh 方式提交
不用每一次 push 的时候都输入用户名密码
原理
- 参考 https://zh.wikipedia.org/zh/Secure_Shell
- 一言蔽之,就是 ssh 协议支持使用公钥-私钥的方式访问
效果:
可以做到多个 git 协议的网站同时使用的效果
可以做到一个 git 协议网站的多个帐号同时使用的效果
步骤
- Mac/Linux 打开命令行终端,
Windows 打开 Git Bash 。这个git Bash在安装了git命令行之后会有
输入
ssh-keygen -t rsa -C "username@example.com"
,提示信息基本上按默认即可(也可以输入密码)实测发现即使是私有项目,也不需要输入密码 - 会在你的个人目录下的
.ssh
目录下生成id_rsa
和id_rsa.pub
- 把
id_rsa.pub
里面的内容粘贴到你的网站的public_key放置的地方 - 测试
ssh -T git@github" title="github">github.com
如果不是此处根据你的git协议网站不同而不同 - 会出现类似的确认信息
The authenticity of host ‘git.xxx (121.xx.126.86)’ can’t be established.
RSA key fingerprint is SHA256:xxxxxxJ6qvE7iPNehBgXRw51ErE77S0Dn+Vg/Ik.
Are you sure you want to continue connecting (yes/no)? yes
- 选择 yes,提示成功信息。
- 修改remote origin 为 ssh形式 ,推荐用 git remote 命令,也可以直接修改
.git
目录下的config
文件 ,把类似https://github.com/p2227/p2227.github.io.git
的网址改成git@github.com:p2227/p2227.github.io.git
- 推送文件
git add –all
git commit -m “test ssh”
git push origin master
完成~
其他配置
- 不想文件名叫
id_rsa
,可以在ssh-keygen
的时候用参数-f
去指定,例如ssh-keygen -t rsa -C "username@example.com" -f ~/.ssh/github
- 为不同的网站指定不同的key。修改
~/.ssh/config
文件增加不同的配置即可(需要利用上面命令生成不同的文件),例如
Host git.coding.netUser username@example.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/coding_rsa
Host github.com
User username@example.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/github_rsa
- 同一平台的多个帐号 ,原理基本同上,需要增加配置项目,example:
Host aaaaaa.github.comHostName github.com
User git
IdentityFile ~/.ssh/github_aaaaaa
Host bbbbbb.github.com
HostName github.com
User git
IdentityFile ~/.ssh/github_bbbbbb
参考
- https://zh.wikipedia.org/zh/Secure_Shell
- https://segmentfault.com/a/1190000002627706
- https://coding.net/help/doc/git/ssh-key.html#ssh
以上是 为 git 添加 ssh 方式提交 的全部内容, 来源链接: utcz.com/z/264740.html