为 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.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.net User 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.com HostName github.com User git IdentityFile ~/.ssh/github_aaaaaa Host bbbbbb.github.com HostName github.com User git IdentityFile ~/.ssh/github_bbbbbb
参考
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论