我连接的大多数服务器都使用非标准 ssh 端口 (1234)。因此,在我的 ssh 配置文件中,我有:
Port 1234
但是 github.com 使用端口 22。当我尝试连接到 github 时,它显然会尝试使用端口 1234。现在我必须编辑我的 ssh 配置才能使其正常工作。
以下是我的 git 配置的一个片段:
[remote "origin"]
url = [email protected]:asdf/asdf.git
答案1
只需看看如何设置你的〜/.ssh /配置文件正确(man 5 ssh_config)。您可以轻松地为不同的主机指定不同的设置。要解决您的问题,您可以设置
Host github.com
Port 22
Host *
Port 1234
请查看 ssh_config 手册页,它在前几页解释了您需要知道的所有内容。
答案2
设置一个部分~/.ssh/config
是一个很好的解决方案,但了解另一种方法可能会有用。
共同点SCP类似的语法user@host:path
没有端口的位置,但是 Git 还支持ssh:
可用于指定端口的 URL 方案:
ssh://[email protected]:22/asdf/asdf.git
虽然ssh:
URL 支持端口指定,但它不支持相对路径(例如,没有直接等效于SCPuser@host:path
-类似于不path
以斜杠开头的语法)。
GitHub 对相对路径和绝对路径的处理方式相同,因此它适用于它们,但它可能不适用于所有基于 SSH 的 Git 存储库。对于简单的基于 SSH 的托管,您可能需要在从相对路径切换到绝对路径时插入/home/username/
或/Users/username/
。某些托管系统可能根本不处理绝对路径(尽管我倾向于将这种缺乏支持称为错误)。
答案3
(问完问题后马上找到答案的感觉真好。)
我修改了我的 ssh 配置以指定每个主机的端口,而不是全局设置:
Host asdf.com
Port 1234
Host github.com
User git
Hostname github.com
Port 22
答案4
找到了这个链接,虽然它很有帮助,但我的博客文章可能有助于澄清这一点:
https://prestongarrison.com/change-port-git-is-using-for-ssh/
基本上,我认为最好只编辑 .git/config 文件并进行更改。