关于IT运维技术的
最佳实践博客网站

bitbucket、github 、gitee 使用密钥免密码管理代码

第一步: git config 设置

git config --global user.name "菜鸟好站长"
git config --global user.email "admin@cnhzz.com"

第二步:先给账号生成密钥对

账号者全局的密钥对代表自己所有者能 push (写)
https://gitee.com/profile/sshkeys

ssh-keygen -t rsa -C "admin@cnhzz.com" -f ~/.ssh/my_git_account

第三步:为账号全局添加到SSH公钥

  1. https://gitee.com/profile/sshkeys
  2. https://github.com/settings/keys
  3. https://bitbucket.org/account/user/bingoku/ssh-keys/

第四步:测试一下是否生效?

ssh -i ~/.ssh/my_git_account -T git@gitee.com
ssh -i ~/.ssh/my_git_account -T git@github.com
ssh -i ~/.ssh/gitee -T git@bitbucket.org

第四步:在给项目生成密钥对

某个项目的密钥对代码能自己只能 clone 和 pull 等只读操作。

ssh-keygen -t rsa -C "admin@cnhzz.com" -f ~/.ssh/my_git_project

第五步:为项目添加 SSH 公钥

1. https://gitee.com/用户名/项目/deploy_keys
2. https://github.com/用户名/项目/settings/keys
3. https://bitbucket.org/用户名/项目/admin/access-keys/

第六步:把生成的密钥对中的私钥文件到 ssh-agent 中去。

习惯使用自定义的名称密钥对名称的同学要注意了。
务必有此操作,不然会类似下面这种错误。

Permission denied (publickey).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights

解决方法:

ssh-add ~/.ssh/my_git_account
ssh-add ~/.ssh/my_git_project

ssh-add 的时候有可能会出现:

Could not open a connection to your authentication agent.

解决方法:需要ssh-agent启动bash,或者说把bash挂到ssh-agent下面。

#!/usr/bin/env bash

# 自动加载 gitee key
eval `ssh-agent -s`
ssh-add ~/.ssh/gitee
ssh-add ~/.ssh/gitee_to_devops
You asked to pull from the remote 'gitssh', but did not specify
a branch. Because this is not the default configured remote
for your current branch, you must specify a branch on the command line.

解决方法:设置上游master

git branch --set-upstream-to gitssh/master

总结使用:

  1. 区分账号和项目的密钥的区别
  2. 注意使用 ssh-add 添加私钥!
  3. 从 UI 设计感来说很喜欢 bitbucket,支持!bitbucket
赞(0)
未经允许不得转载:菜鸟HOW站长 » bitbucket、github 、gitee 使用密钥免密码管理代码
分享到: 更多 (0)

留下你的脚印

  订阅  
关注动态