配置SSH实现Git免密提交

在本地使用git提交代码到Github上时总是需要输入密码,本文介绍了一种通过配置SSH实现免密提交代码到github的方式。

  1. 首先检查当前用户家目录下是否有名为 .ssh 的文件夹;如果不存在,则新建一个;如果存在,查看该目录下是否存在已经生成的密钥对。

    公钥文件的名称一般如下:

    • id_dsa.pub
    • id_ecdsa.pub
    • id_ed25519.pub
    • id_rsa.pub

    其对应的私钥文件的名称一般如下:

    • id_dsa
    • id_ecdsa
    • id_ed25519
    • id_rsa

    如果有已经存在的密钥对的话,可以使用已经存在的密钥对;如果要对已经存在的密钥的密码进行更改的话,可以使用如下命令:

    $ ssh-keygen -p
    Enter file in which the key is (/c/Users/Bob/.ssh/id_rsa): /c/Users/Bob/.ssh/id_ecdsa
    Enter old passphrase:
    Key has comment 'your_email@exmail.com'
    Enter new passphrase (empty for no passphrase):
    Enter same passphrase again:
    Your identification has been saved with the new passphrase.
    

    如果不存在密钥对或者想使用新的密钥对的话,请按照步骤二的操作生成新的密钥对。

  2. 打开 Git Bash,将操作目录切换到当前用户家目录下的 .ssh 目录下,然后执行如下命令:

    $ ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
    

    其中,-t 参数用于指定生成密钥时所用的加密算法,-b 参数用于指定密钥的长度(注意:不同的加密算法可以指定的密钥的长度有所不同),-C 参数用于指定密钥的标签。

    上述命令会生成一个以 your_email@example.com 为标签的密钥对,在生成的过程中会提示你输入用于保存密钥的文件的名称及路径(可以使用默认名称和路径),以及是否需要使用密码进行加密。

  3. 使用文本编辑器打开上步中生成的公钥文件,然后复制其中的所有内容;打开Github的SSH管理界面,添加一个密钥,名称随便设置,其中密钥的内容为已经复制好的公钥的内容,粘贴并保存即完成了密钥的添加。

  4. 在Git Bash中输入如下命令,启动SSH代理服务:

    $ eval $(ssh-agent -s)
    Agent pid 59678
    

    使用如下命令将已经生成的私钥添加到SSH代理中:

    $ ssh-add ~/.ssh/id_rsa  # id_rsa 为私钥文件的名称
    
  5. 创建自启动SSH代理的脚本,方法如下:

    在当前用户主目录下创建一个名为 .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
    elif [ "$SSH_AUTH_SOCK" ] && [ $agent_run_state = 1 ]; then
        ssh-add
    fi
    unset env
    

    这个脚本的作用是在每次打开Git Bash时都自动启动SSH代理服务。

  6. 关闭Git Bash并重新启动,会要求输入创建密钥对时设置的密码,输入正确的密码之后,就可以实现免密提交到Github的功能。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值