Git -i 指定私鑰文件

雖然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的基本操作 初始化操作 $ git config -global user.name #設置提交...
    莊欲以莘閱讀 1,948評論 0 4
  • 一、基本概念: 注:對于git的分布式概念及其優點,不重復說明,自己百度或谷歌。本文中涉及到指令前面有$的,在cm...
    大廠offer閱讀 1,442評論 0 3
  • 1. 版本控制 CVS及SVN都是集中式的版本控制系統而Git是分布式版本控制系統。 集中式版本控制系統,版本庫是...
    Curry_J_X閱讀 340評論 0 0
  • 2019/12/11更新git config --system --unset credential.helper...
    woow_wu7閱讀 562評論 0 0
  • Git教程 一、Git簡介 1.1. Git的誕生1.2.集中式的vs分布式 二、安裝Git 三、創建版本庫 四、...
    曹淵說創業閱讀 959評論 0 2