«

在Github使用SSH连接仓库

srdf 发布于 阅读:150 编程知识


首先,

使用ssh-keygen生成新的ssh密钥对,选择新的存放路径并设置密码。示例代码如下:

ssh-keygen -f YourKeyPairPath -t rsa -b 2048

然后,

为git bash设置自动启动脚本,然后启动Git bash。如果密钥对已加密,它会自动运行ssh-askpass程序询问密钥密码,用户需要手动输入。

可以参照Github的文档编写如下脚本,然后存储在C:\Users\Administrator\.profile:

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 ThisIsYourKeyPairPath
elif [ "$SSH_AUTH_SOCK" ] && [ $agent_run_state = 1 ]; then
    ssh-add ThisIsYourKeyPairPath

fi

unset env

之后,运行 ssh -T git@github.com 指令测试连接。如果连接返回以下文本,说明测试正确:

Hi rainsdm! You've successfully authenticated, but GitHub does not provide shell access.

备注

由于有消息称RSA-2048已被量子计算机破解,因此rsa算法的位数需要达到4096位,每个月换一次。

如果要使用Gitee,任然使用上述脚本,但是需要判断全局配置的邮件值分析是哪个平台,然后根据对应的平台使用相应的SSH密钥对。邮件值需要在脚本中手动设置。


扫描二维码,在手机上阅读
取消
微信二维码
微信二维码
支付宝二维码