为 Git 指定 SSH 端口

为 Git 指定 SSH 端口

我连接的大多数服务器都使用非标准 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 文件并进行更改。

相关内容