美文网首页GitGit使用Git
Git -i 指定私钥文件

Git -i 指定私钥文件

作者: Mark_Zhang | 来源:发表于2017-06-07 19:45 被阅读2482次

    虽然git 支持ssh 协议,但是官方并不支持 ssh 的 -i 指令来指定要使用的key文件(私钥)。
    假如在同一台服务器上默认的私钥并不是你的,你不想修改默认私钥,但是你也并不想使用别人的私钥文件来push自己的代码(虽然push操作显示的commit作者信息是你)。如果能指定自己的私钥文件就方便多了。
    下面分享一个shell脚本,就可以方便的指定私钥文件,命令: git.sh -i xxx/id_rsa git-command
    首先,创建git.sh 文件,添加如下代码:

    #!/bin/bash
    
    # The MIT License (MIT)
    # Copyright (c) 2013 Alvin Abad
    
    if [ $# -eq 0 ]; then
        echo "Git wrapper script that can specify an ssh-key file
    Usage:
        git.sh -i ssh-key-file git-command
        "
        exit 1
    fi
    
    # remove temporary file on exit
    trap 'rm -f /tmp/.git_ssh.$$' 0
    
    if [ "$1" = "-i" ]; then
        SSH_KEY=$2; shift; shift
        echo "ssh -i $SSH_KEY \$@" > /tmp/.git_ssh.$$
        chmod +x /tmp/.git_ssh.$$
        export GIT_SSH=/tmp/.git_ssh.$$
    fi
    
    # in case the git command is repeated
    [ "$1" = "git" ] && shift
    
    # Run the git command
    git "$@"
    

    然后,添加可执行权限chmod +x git.sh
    最后,把该文件放到/usr/local/bin/目录下,完成。
    等需要的时候只需进行如下操作:
    git.sh -i xxx/xxx(私钥文件地址) xxx(git 指令)git.sh -i ~/id_rsa push origin release-debug

    相关文章

      网友评论

        本文标题:Git -i 指定私钥文件

        本文链接:https://www.haomeiwen.com/subject/bhuafxtx.html