首页 > 解决方案 > 为什么 git push to Heroku 需要比 Bitbucket“更宽松”的路由器安全性?(两者都使用端口 22)

问题描述

我有两个 git 遥控器,Bitbucket 和 Heroku。

两个遥控器都定义为使用 SSH(例如,git@SERVICE:USER/PROJECT.git 样式的 url)

git push从新的 wifi 位置执行操作时,推送到 Heroku 的时间为 100% 失败,除非我可以将路由器安全级别从“中”更改为“低”。(无论安全级别如何,都会推送到 Bitbucket。)

使用 ssh -vvv 我验证是否始终使用端口 22,这适用于 Bitbucket,但不适用于 Heroku。

ssh -vvv git@heroku.com 显示端口 22 失败:

# Router set to "medium" security; Bitbucket always works fine...
$ ssh -vvv git@bitbucket.org
OpenSSH_8.1p1, LibreSSL 2.7.3
debug1: Reading configuration data /Users/foo/.ssh/config
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 47: Applying options for *
debug1: Connecting to bitbucket.org port 22.
debug1: Connection established.
# Router set to "medium" security; Heroku fails 100% of the time, uses SAME port!
$ ssh -vvv git@heroku.com
OpenSSH_8.1p1, LibreSSL 2.7.3
debug1: Reading configuration data /Users/foo/.ssh/config
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 47: Applying options for *
debug1: Connecting to heroku.com port 22.
ssh: connect to host heroku.com port 22: Operation timed out
# Router set to "low" security; Heroku works 100% of the time...
$ ssh -vvv git@heroku.com
OpenSSH_8.1p1, LibreSSL 2.7.3
debug1: Reading configuration data /Users/foo/.ssh/config
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 47: Applying options for *
debug1: Connecting to heroku.com port 22.
debug1: Connection established.

当 Heroku 都使用 SSH (22) 时,为什么 Heroku 依赖于比 Bitbucket 更宽松的路由器安全性git push

我在多个路由器上遇到过这个问题。

“低安全性”(允许推送到 Heroku)块:

IDS enabled
IDENT (port 113)

“中等安全性”(允许推送到 Bitbucket、Github、而不是 Heroku)启用 IDS

IDENT (port 113)
ICMP request
Peer-to-peer apps:
kazaa - (TCP/UDP port 1214)
bittorrent - (TCP port 6881-6999)
gnutella- (TCP/UDP port 6346)
vuze - (TCP port 49152-65534)

标签: githerokussh

解决方案


推荐阅读