您的位置:首页 > 编程语言

Ubuntu上git push到GitHub可能会遇到的问题

2015-03-24 14:16 447 查看

SSH端口22被防火墙block

起初按照Generating SSH Keys配置我的Ubuntu主机到GitHub间的SSH,但是在测试连接

$ ssh -vT git@github.com


时,出错:

OpenSSH_5.9p1 Debian-5ubuntu1.4, OpenSSL 1.0.1 14 Mar 2012
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug1: Connecting to github.com [192.30.252.130] port 22.
debug1: connect to address 192.30.252.130 port 22: Connection timed out
ssh: connect to host github.com port 22: Connection timed out


这是因为SSH的默认端口22被防火墙block了!

解决方法一:使用SmartHTTP

将SSH式的URL换成HTTPS式的URL即可

$ git remote set-url origin https://your_username@github.com/your_username/your_repository.git[/code] 
如果是第一次连接的话,就

$ git remote add origin https://your_username@github.com/your_username/your_repository.git[/code] 
这时候push

$ git push origin master


输入你在GitHub上的密码就可以了。第一次Push你的代码Repository到GitHub前,需要先在GitHub上新建好你想要上传到的Repository。

GitHub不支持以此URL进行Push,但可用于Clone。 SSH被block的话,自然也不能用SSH URL来Clone。

GIT式,SSH式,HTTPS式的GitHub URL分别形如:

git://github.com/your_username/your_repository.git

git@github.com:your_username/your_repository.git
 https://your_username@github.com/your_username/your_repository.git[/code] 

解决方法二:修改SSH默认端口

用vim打开SSH默认配置文件

sudo vim /etc/ssh/sshd_config


修改这一行

# What ports, IPs and protocols we listen for
Port 22


将22换成49152~65535之间(短暂端口号ephemeral port,客户端使用的端口号,端口号16位)的一个数字。也可以换成1024~49151之间(登记端口号)的一个数字。但不要换成0~1023之间的数字,因为这些端口号是熟知端口号well-known port number。这1024个端口号已被IANA指派给了TCP/IP最重要的一些应用程序,让所有的用户都知道。这一段参考《计算机网络》(第6版)(谢希仁编著)。

现在测试连接之后就会显示:

Warning: Permanently added the RSA host key for IP address '192.30.252.129' to the list of known hosts.
Hi youngsend! You've successfully authenticated, but GitHub does not provide shell access.


SSH连接成功,之后就可以使用SSH URL进行clone和push了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: