我使用非标准的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:path
的scp- 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文件并进行修改就好多了。