Git에 SSH 포트 지정


18

연결하는 대부분의 서버에 비표준 ssh 포트 (1234)를 사용합니다. 그래서 내 ssh 구성 파일에는 다음이 있습니다.

Port 1234

그러나 github.com은 포트 22를 사용합니다. github에 연결하려고하면 분명히 포트 1234를 사용하려고 시도합니다. 지금 ssh 구성을 편집하여 작업을 수행해야합니다.

다음은 git config의 스 니펫입니다.

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

답변:


27

~ / .ssh / config 파일을 올바르게 설정하는 방법 (man 5 ssh_config)을 살펴보십시오 . 호스트마다 다른 설정을 쉽게 지정할 수 있습니다. 문제를 해결하려면 설정하십시오

Host github.com
Port 22
Host *
Port 1234

ssh_config 매뉴얼 페이지를 보시면 처음 몇 페이지에서 알아야 할 모든 내용이 설명되어 있습니다.


24

섹션을 설정하는 것은 ~/.ssh/config훌륭한 해결책이지만 다른 방법에 대해 아는 것이 좋습니다.

일반적인 scp 와 유사한 구문 user@host:path에는 포트를 배치 할 수 없지만 Git ssh:은 포트를 지정하는 데 사용할 수 있는 URL 체계 도 지원합니다 .

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

하면서 An ssh:URL 지지체 포트 사양은 상대 경로를 지원하지 않는다 (예를 들어 직접적인 등가 없다 SCP -like 구문 user@host:path여기서 path슬래시로 시작하지 않음).

GitHub는 상대 경로와 절대 경로를 동일하게 취급하므로 해당 경로에 적합하지만 모든 SSH 기반 Git 리포지토리에는 작동하지 않을 수 있습니다. 간단한 SSH 기반 호스팅의 경우 상대 경로에서 절대 경로로 전환 /home/username/하거나 삽입해야 할 수 있습니다 /Users/username/. 일부 호스팅 시스템은 절대 경로를 전혀 처리하지 못할 수 있습니다 (그러나 그러한 지원 부족을 버그라고 부르는 경향이 있음).


고마워 크리스. 내 ssh 구성으로 뭉크를 필요로하지 않기 때문에이 경로가 가장 좋습니다. 감사!
제임스 워드

1
참고로, 서버에 "베어"저장소가있는 경우 연결 문자열은 ssh://git@github.com:22/asdf/asdf.git없이 더 비슷하게 보입니다.
Xeoncross

3

(요청한 직후에 답을 찾으면 좋아합니다.)

전역 설정이 아닌 각 호스트의 포트를 지정하도록 ssh 구성을 수정했습니다.

Host asdf.com
    Port 1234

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

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.