Назад | Перейти на главную страницу

Укажите порт SSH для Git

Я использую нестандартный порт ssh (1234) для большинства серверов, к которым я подключаюсь. Итак, в моем файле конфигурации ssh у меня есть:

Port 1234

Но github.com использует порт 22. Когда я пытаюсь подключиться к github, он явно пытается использовать порт 1234. Сейчас мне нужно отредактировать конфигурацию ssh, чтобы все заработало.

Вот отрывок из моей конфигурации git:

[remote "origin"]
        url = git@github.com:asdf/asdf.git

Создание раздела в ~/.ssh/config - прекрасное решение, но может быть полезно узнать о другом методе.

Общее scp-подобный синтаксис user@host:path нет места для порта, но Git также поддерживает ssh: Схема URL, которую можно использовать для указания порта:

ssh://git@github.com:22/asdf/asdf.git

Пока ssh: URL поддерживает спецификацию порта, он не поддерживает относительные пути (например, нет прямого эквивалента scp-подобный синтаксис user@host:path где path не начинается с косой черты).

GitHub обрабатывает относительные и абсолютные пути одинаково, поэтому он работает для них, но может не работать для всех репозиториев Git на основе SSH. Для простого хостинга на основе SSH вам может потребоваться вставить /home/username/ или /Users/username/ при переключении с относительного пути на абсолютный. Некоторые хостинговые системы могут вообще не обрабатывать абсолютные пути (хотя я бы назвал такое отсутствие поддержки ошибкой).

Посмотрите, как настроить свой ~ / .ssh / config файл правильно (man 5 ssh_config). Вы можете легко указать разные настройки для разных хостов. Чтобы решить вашу проблему, вы должны установить

Host github.com
Port 22
Host *
Port 1234

Взгляните на страницу руководства ssh_config, она объясняет все, что вам нужно знать на первых нескольких страницах.

(Мне нравится, когда я нахожу ответ сразу после того, как его задаю.)

Я изменил свою конфигурацию ssh, чтобы указать порт для каждого хоста вместо глобального параметра:

Host asdf.com
    Port 1234

Host github.com
    User git
    Hostname github.com
    Port 22

Нашел эту ссылку, и хотя она была полезной, моя запись в блоге могла бы прояснить ее:

https://prestongarrison.com/change-port-git-is-using-for-ssh/

В принципе, я думаю, что гораздо лучше просто отредактировать файл .git / config и внести изменения.