为 git 添加 ssh 方式提交

不用每一次 push 的时候都输入用户名密码

原理

  • 参考 https://zh.wikipedia.org/zh/Secure_Shell
  • 一言蔽之,就是 ssh 协议支持使用公钥-私钥的方式访问

效果:

可以做到多个 git 协议的网站同时使用的效果

可以做到一个 git 协议网站的多个帐号同时使用的效果

步骤

  1. Mac/Linux 打开命令行终端,

    Windows 打开 Git Bash 。这个git Bash在安装了git命令行之后会有

    输入ssh-keygen -t rsa -C "username@example.com",提示信息基本上按默认即可(也可以输入密码)实测发现即使是私有项目,也不需要输入密码

  2. 会在你的个人目录下的.ssh目录下生成id_rsaid_rsa.pub
  3. id_rsa.pub里面的内容粘贴到你的网站的public_key放置的地方
  4. 测试 ssh -T git@github" title="github">github.com 如果不是此处根据你的git协议网站不同而不同
  5. 会出现类似的确认信息

    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

  6. 选择 yes,提示成功信息。
  7. 修改remote origin 为 ssh形式 ,推荐用 git remote 命令,也可以直接修改 .git目录下的config文件 ,把类似https://github.com/p2227/p2227.github.io.git的网址改成 git@github.com:p2227/p2227.github.io.git
  8. 推送文件

    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

参考

  • 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

回到顶部