我正在尝试使用 Mac 的非标准端口连接到 GitLab 实例。我研究了 .ssh/config 文档并尝试了不同的选项,我认为我的配置还可以,但 ssh 仍然使用端口 22。
ssh -vv gitlab.braemer.myds.me
OpenSSH_7.9p1, LibreSSL 2.7.3
debug1: Reading configuration data /Users/andrey/.ssh/config
debug1: /Users/andrey/.ssh/config line 1: Applying options for *
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 48: Applying options for *
debug1: Connecting to gitlab.braemer.myds.me port 22.
ssh: connect to host gitlab.braemer.myds.me port 22: Connection refused
配置在这里:
cat ~/.ssh/config
Host *
Port 22
Host github.com-irondad
HostName github.com
User git
IdentityFile ~/.ssh/id_rsa_2
IdentitiesOnly yes
Host gitlab.braemer
HostName gitlab.braemer.myds.me
User git
IdentityFile ~/.ssh/id_rsa
IdentitiesOnly yes
Port 87111
有什么想法有什么问题吗?
您没有在命令中指定端口号。
您没有
.ssh/config
在命令的文件中指定您在文件中配置的备用主机名。您必须至少执行其中一项。
您还需要使用有效的端口号。端口号最多只能达到 65535。
除了 Michael Hampton 指出的问题,当配置文件对同一个参数有多个适用的声明时,使用第一个。由于节中的声明在
Port 22
节中的声明Host *
之前,因此声明将始终优先。从ssh_config 手册页(强调添加):Port 87111
Host gitlab.braemer
Port 22
所以如果你想在一个
Host *
部分中包含默认参数设置,你应该把它放在文件的末尾。或者在这种情况下,只需将其关闭,因为端口 22 无论如何都是默认端口。为了完整起见,Michael Hampton 指出的问题是,要应用配置文件中的声明,您必须使用
Host
节标题中的名称,而不是HostName
声明中的名称,并且端口号只能达到 65535。