Github (SSH) через общедоступный Wi-Fi, порт 22 заблокирован

#git #ssh #github #wifi #public

#git #ssh #github #Wi-Fi #общедоступный

Вопрос:

В настоящее время я нахожусь в общедоступном месте Wi-Fi и не могу использовать SSH (вероятно, они заблокировали этот порт). Однако мне нужно это соединение для выполнения git push .

 ➜ ssh -T git@github.com
ssh: connect to host github.com port 22: Connection refused
 

Можно ли обойти это ограничение, настроив SSH-туннель через порт 80 и указав github push использовать это соединение? Как это сделать? Я на OSX (lion). Это должно быть распространенной проблемой?

Комментарии:

1. Кто-нибудь знает, как это сделать для Launchpad.net ?

Ответ №1:

Попробуйте это:

 $ vim ~/.ssh/config
 

Добавить

 Host github.com
  Hostname ssh.github.com
  Port 443
 

Источник: https://help.github.com/articles/using-ssh-over-the-https-port

Комментарии:

1. @prtitrz есть идеи, какая конфигурация для heroku?

2. к вашему сведению, вам не нужно открывать файл с помощью vim.

3. Это здорово! Но мне тоже нужно сделать это для heroku. Есть идеи?

4. См . serverfault.com/a/253314 если вы получаете Bad owner or permissions on /home/.../.ssh/config

5. Спасибо! Ваш ответ решил мою проблему 10 лет спустя!

Ответ №2:

То же самое работает для Bitbucket:

 Host bitbucket.org
  Hostname  altssh.bitbucket.org
  Port  443
 

через (устаревший / мертвый)

через, обновлено (2015-10-29)

Ответ №3:

В дополнение к настройке с ~/.ssh/config помощью файла, вы также можете просто включить номер порта в удаленный URL, который вы используете. Вам просто нужно

  1. используйте правильный URL, например ssh://user@host:port/path , вместо user@host:path сокращения; и
  2. добавьте ssh. поддомен к github.com .

Например, вместо

 git@github.com:cdbennett/python-gitlab.git
 

использование

 ssh://git@ssh.github.com:443/cdbennett/python-gitlab.git
 

Ответ №4:

Для gitlab можно добавить следующее:

 Host gitlab.com
  Hostname altssh.gitlab.com
  User git
  Port 443
 

Источник: альтернативный SSH-порт Gitlab

Ответ №5:

Нет необходимости изменять ~/.ssh/config . Вы можете добавить другой удаленный репозиторий через git remote add .. .

 // github
git remote add ssh://git@ssh.github.com:443/repo/name.git

// gitlab
git remote add ssh://git@altssh.gitlab.com:443/repo/name.git
 

Ответ №6:

VPN (ExpressVPN) работал для меня на JetBlue

Ответ №7:

Я нахожу два способа

Первый

  • tor torify

После успешной установки и настройки tor в системе просто запустите это, чтобы проверить, использует ли ssh tor.

torify ssh -Tv git@gitlab.com


Второй

  • tor privoxy штопор

Сначала настройте tor с первого шага. Затем установите privoxy для преобразования tor SOCKS5 в HTTP-прокси.

sudo apt install privoxy

Затем установите corkscrew

sudo apt install corkscrew

Поместите этот конфигурационный файл в: ~/.ssh/config

 host *
    ProxyCommand corkscrew 127.0.0.1 8118 %h %p
 

Или с помощью ncat

 Host gitlab.com
        User git
        ProxyCommand ncat --proxy 127.0.0.1:8118 %h %p
 

Также можно использовать nc вместо ncat

     ProxyCommand nc --proxy 127.0.0.1:8118 %h %p
 

Теперь ssh может использовать настроенный прокси.

[Править / править код]

Более простая версия

Используйте torify перед командой ssh.

torify ssh -Tv git@gitlab.com


Для работы с Privoxy Tor может потребоваться изменить настройки по умолчанию. Для меня раскомментируйте эту строку в /etc/privoxy/config

 forward-socks5t   /               127.0.0.1:9050 .
 

конфигурация ssh

 Host *
    ProxyCommand nc --proxy 127.0.0.1:8118 %h %p