将 SSH 选项传递给 git-clone

将 SSH 选项传递给 git-clone

我使用 SSH 连接到我的服务器:

ssh user@server -p 2224 -zZ abcd

我的服务器上还有一个 git 存储库。我知道克隆的唯一方法是:

git clone ssh://[email protected]:2224/path/to/repo

使用上面的命令我无法连接到我的服务器,因为-zZ abcd命令中没有。我尝试了以下命令但不起作用。

git clone ssh://[email protected]:2224/path/to/repo -zZ abcd

git clone "ssh://[email protected]:2224/path/to/repo -zZ abcd"

如何在git-clone命令中包含 ssh 参数?

答案1

您可以设置配置选项以节省打字;所以,之后

$ cat >>.git/config <<EOF
[remote "myrepo"]
    url = ssh://[email protected]:2224/path/to/repo -zZ abcd
EOF

仅使用git clone myrepo

请参阅remote..url选项的解释git配置了解详情。

答案2

另一种可能性是设置每个主机的 ssh 选项。当您希望 ssh 选项适用于所有 ssh 命令而不仅仅是 git 时,这可能会很好。这些选项位于 ~/.ssh/config 中并记录在man ssh_config.例如,~/.ssh/config 可能包含类似以下内容:

Host server.com
Compression "yes"
ConnectTimeout 4
GlobalKnownHostsFile /path/to/hosts_file

答案3

.ssh/config如果您经常使用存储库,那么您应该像 amcnabb 所说的那样使用它,记住它.ssh/config可以让您为配置选项创建别名,或者.git/config如果由于某种原因不合适的话。

但是,如果您必须传递ssh真正瞬态的配置选项,例如因为您被困在机场 wifi 中,那么请调整ssh我通常的说明:sshtor

安装connect在您的路径中,也许可以通过connect.c从源代码构建

创建一个名为的脚本git-tbb

#!/bin/bash
export CONNECT_PASSWORD=""
exec ssh -o ProxyCommand="connect -5 -S 127.0.0.1:9150 %h %p" $*

创建一个名为git-tbb

#!/bin/bash
export GIT_SSH=`which ssh-tbb` git pull
exec git $*

-tor如果您将默认 Tor 配置的端口更改为 9050,而不是 TBB 的默认 9150,请将它们重命名为。

相关内容