ssh: 连接到主机 bitbucket.org 端口 22 失败: 连接超时

41
一切都运作得非常完美。进行了一些git push操作,没有任何问题。
今天我决定将框架更新到最新版本,所以它稍微改变了我的项目目录结构。在Bitbucket中,我创建了一个新的存储库(dev1.project.com),并将我的项目文件夹从OldName重命名为dev1.project.com
我编辑了.git/config文件,将其指向我的新存储库:
[core]
        repositoryformatversion = 0
        filemode = true
        bare = false
        logallrefupdates = true
[branch "master"]
[remote "origin"]
        url = https://bitbucket.org/user/dev1.project.com.git
        fetch = +refs/heads/*:refs/remotes/origin/*

当我执行git remote -v命令时,会得到以下结果:
origin  ssh://git@bitbucket.org/user/dev1.project.com.git (fetch)
origin  ssh://git@bitbucket.org/user/dev1.project.com.git (push)

我回到我的项目文件夹,然后输入:
git init
git add .      
git commit -m 'my first commit'
git push -u origin master

但我一直收到以下错误提示:
ssh: connect to host bitbucket.org port 22: Connection timed out
fatal: The remote end hung up unexpectedly

命令 ssh -T git@bitbucket.org 给我返回了和上面相同的信息。

命令: git config --get remote.origin.url 显示为:

git@bitbucket.org:user/dev1.project.com.git

status.bitbucket.org 显示他们的一切都正常。

我不确定为什么之前可以工作,现在不能工作。

我使用的是CentOS,下一步该怎么做我也不确定。我看到有一些与iptables相关的答案,所以我试了一下:

iptables -t filter -A OUTPUT -p tcp --match multiport --dport 22 -j ACCEPT

service iptables stop
service ip6tables stop
service sshd reload
service iptables start
service ip6tables start

但是仍然没有任何进展,有什么想法吗?

附注:我还将CentOS从6.6升级到6.7,将PHP 5.4升级到5.6,但认为这不重要。

更新#1

运行以下命令:

ps x | grep ssh-agent
eval `ssh-agent -s`
ssh-add     # then it asked for my password

收到消息:

Identity added: /root/.ssh/id_rsa (/root/.ssh/id_rsa)

那么

service sshd restart

但是还是没有任何进展

更新 #2

我给我的VPS托管公司发送了电子邮件,询问是否有什么办法可以打开22端口,他们回答说:

我已经禁用了监视系统,阻止流量到Bitbucket。

我不知道这意味着什么,但之后一切都正常了,显然我无能为力。


有一个打字错误:service sshd restart 应该是 service ssh restart - Joost Döbken
你能否提供这些解决方案的链接? - Joost Döbken
我也遇到了这个错误,但是我不知道如何解决它,你能解释一下解决方案吗? - DinhNguyen
这非常有用,我在虚拟机上运行RHEL 7,在看了您的帖子后,我暂时禁用了路由器上的防火墙,然后我成功建立了连接。感谢您发布解决方案。 - Eric
2个回答

136
我已经完成了下面提到的事情,然后它开始工作了。
 vim ~/.ssh/config

添加这些行并保存。
Host bitbucket.org
    Hostname  altssh.bitbucket.org
    Port  443

对于Windows系统:

  • 去你的.ssh文件夹所在的地方(运行 %USERPROFILE%)。

  • 打开.ssh文件夹,创建一个名为config的文件,不要加任何扩展名。

  • 粘贴下面的内容并保存。

    Host github.com
              Hostname ssh.github.com
              Port 443
    
    Host bitbucket.org
              Hostname  altssh.bitbucket.org
              Port  443
    

非常感谢!您能详细说明这里的问题吗? - IProblemFactory
这里的altssh是做什么用的? - fireball.1
3
请查看以下链接。它们将帮助您了解问题。https://about.gitlab.com/2016/02/18/gitlab-dot-com-now-supports-an-alternate-git-plus-ssh-port/http://www.garbers.co.za/2014/03/03/connecting-to-bitbucket-on-https-port/ - Pardeep Kumar
无法工作!显示:ssh: connect to host bitbucket.org port 22: Operation timed out。 - Sourabh
我最终发现了同样的事情:解决方法:将SSH流量通过443端口路由到Bitbucket.org...如果你的网络管理员在22端口上阻止外部流量。我会详细介绍,并解释如何使用nmapncat来确定你的网络管理员是否在22端口上阻止对bitbucket的流量。 - Gabriel Staples
显示剩余3条评论

1

尝试使用这个命令。

ssh-add ~/.ssh/id_rsa

"

"id_rsa"是在生成SSH密钥时创建的文件。

"

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接