github ssh 配置_GitHub 实战干货

# GitHub 实战干货

429913f991192b4e02790779dc8a4c0d.png


## (1) 最简单的,利用GitHub上生成的token来登陆。
首先去Github / Settings / Developer settings / Personal access tokens 开通一个属于你自己的token。注意,第一次就要复制保存好,一般只出现这一次。
然后 git clone https://github.com/{{username}}/{{project-name}}.git (注意是HTTPS协议)
会提示username,输入你的登陆邮箱。
然后再次提示你的password。注意!!!这个地方不是让你输入你的登陆github密码的,而是你刚刚得到的token(此时你应该已经保存好了)
然后即可登陆。
---------------
## (2) 编写git配置文件
上面的第一种方式虽然简单,但是每次都要敲入username和token是很麻烦的。那么就是这种方法了。
首先创建或修改~/.gitconfig
```
~ cat ~/.gitconfig
# This is Git's per-user configuration file.
[user]
# Please adapt and uncomment the following lines:
name = {{your name}}
email = {{your email}}
[credential]
helper = store
```
注意:上面的最后两行,必须如此写。
然后创建或修改~/.git-credentials
```
~ cat ~/.git-credentials
https://{{your username}}:{{your token}}@github.com
```
注意:
1. {{you username}} 就是你github登陆账号
2. 如果username里面有`@`,注意用`%40`来转义掉。
3. 比如完整例子如下:https://johnny%40gmail.com:948df********dac@github.com
---------------
## (3) 配置SSH Key登陆方式(最安全,最方便,最推荐)
事实上,在很多场合里面,比如云服务器,Github,Gitee等,在太多太多场合下面都需要用到ssh密钥对,*建议成熟的开发者,建立好一个密钥对,就永远保存好,不丢弃*。
首先建立一个你的密钥对,利用ssh-keygen命令。
注意:
1. 默认ssh-keygen命令的生成的位数是128位(好像是)。但是一般情况下,最好 -b 参数生成4096位的,更安全。
2. -N 参数可以指定空密码。
完整的生成没有密码的sshkey密钥对的例子:
```
ssh-keygen -b 4096 -f ~/.ssh/id_rsa -N ""
```
注意:
1. 如果这里最后你没有 -N "" 那么则会询问设定密码。
2. 如果你设定密码了,每次github push / pull等任何交互,你要多出来一步,就是输入你的sshkey的密码。
3. 当然是否用密码取决你的安全意识,如果是无密码,私钥被人窃取就是任何人都可以伪装你了。
4. 理论上密钥对名字可以是任意的,但是Unix系统默认找 id_rsa 这个名字的密钥。如果要配置个性化名字和多个密钥对,请参阅下方第四个进阶方法。
密钥对生成好了之后,去分发你的public key 到你的Github上:
Github / Settings / SSH and GPG Keys
去把你的公钥粘贴进去。
然后编辑你的~/.ssh/config 文件
在最上面加上:
```
~ cat ~/.ssh/config
ServerAliveInterval 60
Host github.com
HostName github.com
User git
IdentityFile ~/.ssh/id_rsa
```
注意:
1. Host 后面跟着的名字最好还是你希望的目标网站的名字。理论上是可以任意编写的,比如说,你自定义为hello.com. 那么你git clone git@github.com:jpixy/{{project name}}.git 的时候,你要手动修改下,替换成 git clone git@hello.com:jpixy/{{project name}}.git 这样。一般来说没有必要麻烦自己。
2. 对于github的应用场景来说, *User 必须是 git*
3. 其实这个方式不仅仅可以利用于github登陆,配置你私人服务器远程登陆等等,都可以用这个方法。
好了,现在你可以git clone了。安全又方便。
注意:
1. 这个时候要选择的是 SSH 协议的 link,而不再是HTTPS 的link了。
2. 其实这个时候你也就知道为什么一定是 git 作为 User了,因为link都是:git@github.com:jpixy/{{project name}}.git 这样的格式了。
3. 提供一个小小的测试技巧:`ssh -T git@github.com` 如果你配置一切正常,你会得到github给你的欢迎消息。
---------------
## (4) 如何在多个Git repo里面自由切换
我们会遇到这样的场景:我同时拥有Github, Gitlab, Gitee,乃至我私人的Git repo。
那么我如何避免,一次次手动输入用户密码,或者指定不同key等麻烦操作呢?
这里有两个方式。
1. 不是特别安全的方式,就是在 ~/.git-credentials 里面新增加记录。你有几个仓库,你就增加几条记录。
2. 就是我们要着重推荐的方式。还是修改 ~/.ssh/config 文件来达到目的,具体看下文。
```
Host github.com
HostName github.com
User git
IdentityFile ~/.ssh/id_rsa_github.com
Host gitlab.com
HostName gitlab.com
User git
IdentityFile ~/.ssh/id_rsa_gitlab.com
Host gitee.com
HostName gitee.com
User git
IdentityFile ~/.ssh/id_rsa_gitee.com
```
现在你就明白了吧。
注意:
1. 最好用不同的sshkey对,当然也可以都用一对
2. 公钥自己复制配置到对应的网站上

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值