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

本文介绍了当SSH端口22被防火墙封锁时的两种应对策略:一是切换到HTTPS方式与GitHub交互;二是更改SSH服务端口并重新测试连接。

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了。


### 如何在 Ubuntu 上通过 Git 将文件推送到 GitHub 仓库 要在 Ubuntu 系统上通过 Git 将文件推送到 GitHub 仓库,可以按照以下方法操作: #### 初始化本地 Git 仓库 如果尚未初始化本地目录作为 Git 仓库,则需要执行以下命令: ```bash git init ``` 此命令会在当前目录中创建一个新的 `.git` 文件夹,用于存储版本控制数据。 #### 添加远程仓库地址 为了连接到 GitHub 的远程仓库,首先需要添加远程仓库 URL。假设已经在 GitHub 创建了一个名为 `my-repo` 的新仓库,可以通过以下命令将其设置为远程仓库: ```bash git remote add origin https://github.com/username/my-repo.git ``` 这里的 `origin` 是默认的远程名称,而 `https://github.com/username/my-repo.git` 是您的 GitHub 仓库地址[^2]。 #### 提交更改至本地仓库 在提交之前,先将要上传的文件加入暂存区: ```bash git add . ``` 这一步会将当前工作目录中的所有修改和新增文件添加到暂存区。接着,使用以下命令提交这些变更到本地仓库: ```bash git commit -m "Initial commit" ``` 这里 `-m` 参数后面跟着的是提交信息,描述本次提交的内容[^1]。 #### 推送文件到 GitHub 完成以上步骤之后,就可以把本地提交的历史记录推送到 GitHub 远程仓库了: ```bash git push -u origin master ``` 如果是第一次推送或者目标分支不存在于远程服务器上时,可能需要用到 `-u` 参数指定上游(upstream),这样以后可以直接运行简单的 `git push` 而无需额外参数[^3]。 注意:如果您正在使用的不是 `master` 分支而是其他自定义命名的分支,请替换上面命令里的 `master` 成实际的目标分支名。 #### 更新远程仓库内容到本地 当团队成员之间共享项目并希望同步最新改动时,可拉取最新的远程仓库状态回到自己的机器上来保持一致: ```bash git pull origin master ``` 同样地,记得依据实际情况调整分支名字[^3]。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值