为Git指定SSH端口

我使用非标准的ssh端口(1234)来连接大多数服务器。 所以在我的SSHconfiguration文件,我有:

Port 1234 

github.com使用端口22.当我尝试连接到github,显然是尝试使用端口1234.现在我必须编辑我的sshconfiguration才能使事情正常工作。

这是从我的gitconfiguration一个片段:

 [remote "origin"] url = [email protected]:asdf/asdf.git 

只要看看如何正确设置〜/ .ssh / config文件(man 5 ssh_config)。 您可以轻松地为不同的主机指定不同的设置。 为了解决你的问题,你会设置

 Host github.com Port 22 Host * Port 1234 

看一下ssh_config手册页,它解释了前几页中需要知道的一切。

~/.ssh/config设置一个部分是一个很好的解决scheme,但是了解其他方法可能会有帮助。

user@host:path的普通scp- like语法没有端口的位置,但Git还支持可用于指定端口的ssh: URL模式:

 ssh://[email protected]:22/asdf/asdf.git 

虽然ssh: URL支持端口规范,但它不支持相对path(例如,没有直接相当于user@host:pathscp- like语法,其中path不以斜杠开始)。

GitHub以相同的方式处理相对path和绝对path,因此它适用于它们,但它可能不适用于所有基于SSH的Git存储库。 对于简单的基于SSH的托pipe,当从相对path切换到绝对path时,您可能需要插入/home/username//Users/username/ 。 一些主机系统可能根本无法处理绝对path(尽pipe我倾向于称这种缺乏支持的bug)。

(当我问到问题的时候,我很乐意回答。)

我修改了我的sshconfiguration来指定每个主机的端口,而不是一个全局设置:

 Host asdf.com Port 1234 Host github.com User git Hostname github.com Port 22 

find这个链接,虽然这有帮助,但是我的博客可能有助于澄清:

https://prestongarrison.com/change-port-git-is-using-for-ssh/

基本上我认为只需编辑你的.git / config文件并进行修改就好多了。