是否有可能访问(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配置文件.
您可以使用该变量$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)
据我所知,这是目前唯一的方法,没有相当不整齐的路径操作.
您可以覆盖$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 命令时,它将被此脚本替换,并引用您的密钥。
| 归档时间: |
|
| 查看次数: |
1318 次 |
| 最近记录: |