Git:使用密钥文件通过ssh访问远程存储库,但不使用〜/ .ssh/config

Pau*_*ijs 10 git ssh config

是否有可能访问(fetch/ push)使用ssh和身份文件(私钥),而不添加文件条目中的远程仓库~/.ssh/config,例如:

Host tingle
  HostName 111.222.333.444
  User git
  IdentityFile c/tmp/my_id_rsa
Run Code Online (Sandbox Code Playgroud)

配置~/.ssh/config文件时一切正常.但是我们有一个脚本,它从远程仓库克隆,检出,开始测试,提交结果并推送它们.该脚本需要在任何计算机上运行,​​而无需触及ssh配置文件.

M. *_*tki 7

您可以使用该变量$GIT_SSH(请参阅文档)来设置调用的程序而不是ssh.

你可以这样做,例如 GIT_SSH=/my/own/ssh git clone https://my.own/repo.git

/my/own/ssh根据您自己的需要调整内容,例如:

#!/bin/bash
# Wrapper for ssh, to use identity file and known hosts file
exec /usr/bin/ssh -i /my/own/identity_file-o UserKnownHostsFile=/my/own/hosts.file "$@"
Run Code Online (Sandbox Code Playgroud)

据我所知,这是目前唯一的方法,没有相当不整齐的路径操作.


Mur*_*nik 4

您可以覆盖$GIT_SSH环境变量以使用您自己的私钥:

首先,创建一个包装脚本。假设我们称之为gitssh.sh

#!/bin/bash
ssh -i /path/to/mykey "$@"
Run Code Online (Sandbox Code Playgroud)

然后,指向$GIT_SSH它:

export GIT_SSH=/path/to/gitssh.sh
Run Code Online (Sandbox Code Playgroud)

现在,每当您通过 ssh 运行 git 命令时,它将被此脚本替换,并引用您的密钥。