Subversion 프로젝트에 대해 비밀번호 없는 SSH 연결을 설정하고 싶습니다. 지금은 ssh+svn을 사용하고 있는데, 서버와 거래할 때마다 비밀번호를 입력해야 해서 좀 귀찮습니다.
비밀번호 없는 SSH 키를 생성하는 방법에 대한 몇 가지 튜토리얼을 온라인에서 찾았지만, 모두 홈 시스템과 원격 시스템에서 동일한 사용자 이름을 사용한다고 가정하는 것 같습니다. 그러나 ssh+svn에 사용하는 사용자 이름은 실행 중인 시스템의 사용자 계정 이름과 다릅니다. 올바르게 설정하려면 어떻게 해야 합니까? 키 파일의 이름을 변경하는 것만으로는 운이 없습니다.
답변1
다음 명령에 다른 시스템의 사용자 이름을 제공하기만 하면 됩니다 svn
.
$ svn co svn+ssh://otheruser@othersystem/path/to/repo
또한 질문 제목에 대답하려면 다음을 수행하십시오.
$ ssh otheruser@othersystem
그러면 명령을 입력하는 컴퓨터의 개인 키에 해당하는 공개 키를 sshd
원격 컴퓨터에서 조회 하게 됩니다.~otheruser/.ssh/authorized_keys
답변2
이를 수행하는 방법에는 두 가지가 있습니다.
1) user@를 svn url에 입력하면 svn+ssh가 해당 사용자로 로그인하도록 지시합니다. 저장소의 다른 부분을 가리키는 외부 콘텐츠가 제대로 작동하지 않기 때문에 이는 유지 관리 관점에서 나쁜 생각이라고 생각합니다.
2) ~/.ssh/config를 생성합니다(다음과 같이 기록됨).ssh_config) 이렇게 말했습니다.
Host othersystem
User otheruser
이 방법어느다른 시스템으로 SSH를 시도하면 기본적으로 다른 사용자가 사용됩니다. 이는 수동으로 SSH를 실행할 때나 svn을 사용할 때 편리합니다.
답변3
두 컴퓨터 모두에서 동일한 사용자 이름을 가질 필요는 없습니다. 키( ssh-keygen
)를 생성할 때마다 로컬 서버에서 라인을 복사하거나 ~/.ssh/id_rsa.pub
( ~/.ssh/id_dsa.pub
키 유형에 따라) ~/.ssh/authorized_keys
원격 서버에 추가해야 합니다.
% ssh-keygen
% cat ~/.ssh/id_*.pub | ssh remoteuser@remoteserver 'cat >> .ssh/authorized_keys'
remoteuser
매번 입력 하고 싶지 않다면 다음에 추가하세요 ~/.ssh/config
.
Host remoteserver
User remoteuser
메모이름키는 다음과 같은 형식일 수 localuser@localhost
있지만이름은 단 하나. 그것도 괜찮아요 myfavouritekey@myfavouritecomputer
. 아무도 신경 쓰지 않을 거예요.
답변4
생성 .ssh/config
하고 실행한 후:
cat ~/.ssh/id_*.pub | ssh remoteuser@remoteserver 'cat >> .ssh/authorized_keys'
오류가 발생합니다.
Bad owner or permissions on /usr/share/eprints3/.ssh/config
그런 다음 추가했는데 chmod 600 .ssh/config
원활하게 실행되었습니다.