Skip to main content
Мы публикуем частые обновления нашей документации, и перевод этой страницы может все еще выполняться. Актуальные сведения см. в документации на английском языке.

Использование SSH через порт HTTPS

Иногда брандмауэры отказываются в полной мере разрешать подключения по протоколу SSH. Если использование клонирования HTTPS с кэшированием учетных данных недоступно, можно попытаться выполнить клонирование с помощью SSH-подключения, выполненного через порт HTTPS. Большинство правил брандмауэра должны разрешать этот вариант, но прокси-серверы могут этому помешать.

Пользователи GitHub Enterprise Server : доступ к GitHub Enterprise Server по SSH через порт HTTPS в настоящее время не поддерживается.

Чтобы проверить, возможно ли подключение по протоколу SSH через порт HTTPS, выполните следующую команду SSH:

$ ssh -T -p 443 git@ssh.github.com
> Hi USERNAME! You've successfully authenticated, but GitHub does not
> provide shell access.

Примечание. Имя узла для порта 443 — ssh.github.com, а не github.com.

Если она выполнена успешно, все в порядке. В противном случае вам может потребоваться выполнить руководство по устранению неполадок.

Теперь, чтобы клонировать репозиторий, можно выполнить следующую команду:

$ git clone ssh://git@ssh.github.com:443/YOUR-USERNAME/YOUR-REPOSITORY.git

Включение SSH-подключений по протоколу HTTPS

Если вы можете подключиться по протоколу SSH git@ssh.github.com через порт 443, можно переопределить параметры SSH, чтобы принудительное подключение к GitHub.com выполнялось через этот сервер и порт.

Чтобы настроить это в файле конфигурации SSH, измените файл по пути ~/.ssh/config и добавьте следующий раздел:

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

Чтобы проверить, что это работает, подключитесь еще раз к GitHub.com:

$ ssh -T git@github.com
> Hi USERNAME! You've successfully authenticated, but GitHub does not
> provide shell access.

Обновление известных узлов

При первом взаимодействии с GitHub после переключения на порт 443 может появиться предупреждающее сообщение о том, что узел не найден в known_hostsили что он был найден по другому имени.

> The authenticity of host '[ssh.github.com]:443 ([140.82.112.36]:443)' can't be established.
> ED25519 key fingerprint is SHA256:+DiY3wvvV6TuJJhbpZisF/zLDA0zPMSvHdkr4UvCOqU.
> This host key is known by the following other names/addresses:
>     ~/.ssh/known_hosts:32: github.com
> Are you sure you want to continue connecting (yes/no/[fingerprint])?

На этот вопрос можно с уверенностью ответить "да", если отпечаток SSH соответствует одному из опубликованных отпечатков пальцев GitHub. Список отпечатков пальцев см. в разделе Отпечатки ключей SSH на GitHub.