Windows 10 下使用 Git Bash SSH方式连接GITHUB 的配置方法

目录

生成公钥和私钥,使用默认文件key文件名

生成公钥和私钥,使用自定义文件名


生成公钥和私钥,使用默认文件key文件名

1、打开 Git Bash

2)命令行输入 ls -al ~/.ssh 查看SSH密钥是否存在,一般来说是没有的,如果又直接跳过2)3)到第4)步

3)如果没有,那么使用 : ssh-keygen -t rsa -b 2048 -C "xxxx@xxx.com"  来生成。  -t 参数选择加密类型,不加默认是rsa, -b选择长度,   -C 注释,这个加不加都可以

4)这时候命令行输入 ls -al ~/.ssh 查看SSH密钥是否存在。这里又个坑,如果上一步输入了自定义生成的key文件名,那么我的WIN10就不会自己生成在用户目录下生成  .ssh的文件夹,虽然上一步也提示已经保存在了用户目录,但是实际是在当前目录生成的。这样就要自己手动去用户目录建立.ssh的文件夹,然后将生成的公钥和私钥文件移到.ssh目录了。如果使用自定义私钥文件名,还需要额外的操作,后面会介绍。

5) 用记事本打开刚刚生成的pub后缀的公钥文件,复制里面的所有内容,登记到github的ssh公钥设置中。

 

6) 使用  ssh -T git@github.com  测试连接是否成功,看到 successfully ,那么恭喜你,可以使用了。 如果出现:,那么重新看看是不是哪一步错了。

 

生成公钥和私钥,使用自定义文件名

1)~2) 和上面操作一样

3)使用 : ssh-keygen -t rsa -b 2048 -C "xxxx@xxx.com"  来生成。当然也可以用上面生成的默认key来改名也是可以的。

4) 这里是关键,非默认的文件名,是无法直接用 git bash直接连接 github 的,需要配置  ssh-agent ,加入密钥文件。

加载密钥用三种,一是在当前窗口有效,一是使用git bash启动脚本的方法;三是增加配置文件,下面介绍这三种方法。

  • 当前窗口有效

打开git Bash命令行,依次执行以下命令:

exec ssh-agent bash

eval ssh-agent -s

ssh-add "C:/Users/Jill/.ssh/zhangsan_rsa"

出现下面的提示: identity add 说明添加成功了,可以使用ssh-add -l  查看是否有key。我试过只有当前窗口有效,关闭了以后,下次就不能pull,push到github了,会提示公钥错误。

  • 设置git bash启动脚本的方法

要每次打开窗口都有效,可以添加启动脚本,在每次打开Git Bash的时候,让ssh-agent自动运行。将以下内容粘贴到Git 里的~/.profile or ~/.bashrc文件,这样每次打开Git Bash时,ssh-agent将自动运行。 

注意的地方是这里添加私钥文件的路径,需修改为你刚刚自己定义的私钥文件名。 ssh-add "C:/Users/Jill/.ssh/zhangsan_rsa" 或者写成 ssh-add ~/.ssh/zhangsan_rsa

下面的示例脚本我是添加在C:\Program Files\Git\etc\bash.bashrc  这个文件中,key还是以用户目录下的  zhangsan_rsa为例, 如果你的私钥文件放在别的目录需要修改下面脚本的:ssh-add "x:/xxx/xxx"

env=~/.ssh/agent.env

agent_load_env () { test -f "$env" && . "$env" >| /dev/null ; }

agent_start () {
    (umask 077; ssh-agent >| "$env")
    . "$env" >| /dev/null ; }

agent_load_env

# agent_run_state: 0=agent running w/ key; 1=agent w/o key; 2= agent not running
agent_run_state=$(ssh-add -l >| /dev/null 2>&1; echo $?)

if [ ! "$SSH_AUTH_SOCK" ] || [ $agent_run_state = 2 ]; then
    agent_start
    ssh-add ~/.ssh/zhangsan_rsa
elif [ "$SSH_AUTH_SOCK" ] && [ $agent_run_state = 1 ]; then
    ssh-add ~/.ssh/zhangsan_rsa
fi

unset env

重新打开Git Bash,第一次打开会显示,加载key成功,如果出现: Identity added: /c/Users/Jill/.ssh/zhangsan_rsa (xxxx@xxx.com) ,表示加载成功了,可以直接操作了。

  • 增加配置文件来实现

新建一个文件文件,命名为: config ,放到用户目录,一定要是用户目录,注意不带任何扩展名。IdentityFile 字段加上私钥的文件路径,这里还是以用户路径为例,可以根据自己需要修改放在不同地方。个人推荐使用这种方法,改动的东西最少

Host github.com
User zhangsan
Hostname ssh.github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/zhangsan_rsa

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值