2009-10-13 4 views
100

원격 저장소에 대한 내 로컬 자식 프로젝트를 설정 중입니다. 원격 저장소가 비표준 포트 (4019)에서 제공되고 있습니다.비표준 포트로 원격 저장소 사용

하지만 작동하지 않습니다.

ssh: connect to host git.host.de:4019 port 22: Connection refused 
fatal: The remote end hung up unexpectedly 
error: failed to push to 'ssh://[email protected]:4019/var/cache/git/project.git' 

내 지역의 자식 설정이 as follows입니다 : 대신 나는 다음과 같은 오류 메시지가 얻을. (포트 및 호스트 실제 포트 및 호스트에 대한 자리 표시 자)

[core] 
    repositoryformatversion = 0 
    filemode = true 
    bare = false 
    logallrefupdates = true 
[remote "origin"] 
    url = ssh://[email protected]:4019/var/cache/git/project.git 
    fetch = +refs/heads/*:refs/remotes/origin/* 
[branch "master"] 
    remote = origin 
    merge = refs/heads/master 

은 무엇인가 내 자식 구성에 문제가 있습니까?

Host githost 
HostName git.host.de 
Port 4019 
User root 

는 다음 기본 구문을 사용할 수 있어야합니다 : 당신이 당신의 .ssh/config이 같은 뭔가를 넣으면

+8

y ou는 명시 적으로'ssh : //'를 URL 앞에 두지 않는다. 그것은 다른 형식이라고 생각한다. 그래서'example.com : 444/etc /'는 port를 통해 example.com의/444/etc /이다. "ssh : //example.com : 444/etc /'는 example.com의/etc/port이다. 22. – Kzqai

+4

@Kzqai 발언이 중요합니다. git remote set-url origin 인 경우 [email protected] : 443/yourname/yourrepo /'작동하지 않습니다. 하지만'git remote set-url origin ssh : //[email protected] : 443/yourname/yourrepo /'이 동작 할 것입니다. – oak

+0

Google-fu의 경우 - 내가 가지고있을 때 phabricator에이 문제가있었습니다. 2222의 비 기본 포트로 설정되었습니다. 이제 정렬되었습니다! – user3791372

답변

90

은을 지정할 때

git push githost:/var/cache/git/project.git master 
+3

SSH config가 해결책이 될 수 있지만, man git-push가 ssh : // [user @] host.xz [: port]/path/to/repo라는 ssh url 형식을 사용하고 있기 때문에 관심이 있습니다. git/ – gnud

+1

잘 모르겠다. ssh : // fake @ localhost : 333/fake 주소로 푸시하려고 했으므로 구성 git/ssh 버전 문제 일 수있다. "(예상대로)"포트 333 : Connection refused ". –

+28

아직도 이것을 필요로하는 사람들을 주목하십시오. 홈 디렉토리에 대한 상대 경로는'git clone ssh : // username @ hostname : 333/~/repo'이고, 홈 디렉토리에 대한 경로는'git clone ssh : // username @ hostname : 333/path/to/repo '이다. 절대 경로 –

6

SSH는 : 구문을 사용하지 않습니다 포트.

 
Host git.host.de 
    Port 4019 

그런 다음 포트 번호없이 단지 git.host.de을 지정 :이 작업을 수행하는 가장 쉬운 방법은 ~/.ssh/config 파일을 편집하고 추가하는 것입니다.

9

이 직접 해결보다 문제가 아니라 피할 수,하지만 난 당신이

url = git_host:/var/cache/git/project.git 

을 가질 수 있습니다이

Host git_host 
HostName git.host.de 
User root 
Port 4019 

같은 ~/.ssh/config 파일을 가지고 뭔가를 추가하는 것이 좋습니다 것입니다 그리고 당신도 할 수 있습니다 ssh git_hostscp git_host ... 등 모든 것이 잘 작동합니다.

103
http://git-scm.com/docs/git-clone에 규정 된 기반 자식 접근 방법은 전체 URL 또는 SCP와 같은 구문을 사용하여 <repo_path>/.git/config 지정할 수 있습니다

SSH :

URL 스타일 :

url = ssh://[[email protected]]host.xz[:port]/path/to/repo.git/ 

SCP 스타일 :

url = [[email protected]]host.xz:path/to/repo.git/ 

SCP 스타일은 직접 포트 변경을 허용하지 않으며 대신 호스트 정의 인 ssh_config에 의존합니다 이온에 ~/.ssh/config 같은 :

Host my_git_host 
HostName git.some.host.org 
Port 24589 
User not_a_root_user 

그런 다음 당신이 쉘에서 테스트 할 수 있습니다

ssh my_git_host 

과 같은 <repo_path>/.git/config에 SCP-스타일 URI를 변경 :

url = my_git_host:path/to/repo.git/ 
+0

Soooooo ... 정말 필요한 것은 ssh를 추가하는 것입니다 : // 아마 URL 앞에서. – Kzqai

+0

ssh urls를 지정하거나 scp (기본값)가 포트 번호를 허용하지 않음을 알지 못했습니다. 알아 둘만한. – Powerlord

+0

scp는 실제로 포트 번호를 허용합니다 (그러나 옵션 키는 대문자 P 여야합니다) : scp -P 2020 file/to/copy user @ host : path/to/copy/file/to – Drew

19

이 시도

git clone ssh://[email protected]:11111/home/git/repo.git 
+1

안녕하세요, Ricky, 저에게 효과적입니다. git clone ssh : // user @ machine : port/path-to-repo, 여기서 machine은 user이어야합니다. – rtrujillor

관련 문제