2

我有一个奇怪的情况,我被告知我的 IT 使用 ssh URL 中的端口连接到 git 服务器。我原来的 ssh 配置如下:

Host my-host-alias
  HostName redacted.redacted.edu
  Port 2222
  User git
  IdentityFile ~/.ssh/my-ssh-private-key

我正在使用 git remote url ssh://git@my-host-alias/path/to/repo.git。我在该配置中遇到了一些奇怪的 Auth 错误(尽管基本功能仍在工作),因此 IT 指示我使用 git 远程 url ssh://git@redacted.redacted.edu:2222/path/to/repo.git,并且似乎可以与手动指定的GIT_SSH_COMMAND='ssh -i ~/.ssh/my-private-ssh-key. 所以我重新配置了我的 .ssh/config 如下:

Host redacted.redacted.edu:2222
  IdentityFile ~/.ssh/my-ssh-private-key

突然,似乎 ssh 无法再解析 Host 条目了。如果我运行,ssh -Tvvv ssh://git@redacted.redacted.edu我会得到以下输出(片段):

debug1: /Users/myuser/.ssh/config line 94: Applying options for *
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 48: Applying options for *
debug1: /etc/ssh/ssh_config line 52: Applying options for *

似乎在 URL 中指定带有端口的主机会破坏 .ssh/config 的解析。有人可以验证吗?

4

1 回答 1

0

SSH URI 语法不会使用~/.ssh/config

SSH 协议的历史来看OpenSSH (1999)使用的SCP 语法早于URI(最终于RFC 3986,2005年 1 月)

因此,my-host-alias:path/to/repo.git如果您想使用.ssh/config.

于 2020-05-02T15:58:38.617 回答