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

1 篇文章 0 订阅
1 篇文章 0 订阅

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

如果是第一次连接的话,就

$ git remote add origin https://your_username@github.com/your_username/your_repository.git

这时候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

解决方法二:修改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了。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值