Subversion 프로젝트에 대해 암호없는 SSH 연결을하고 싶습니다. 지금은 ssh + svn을 사용하고 있는데 서버와 거래하고 싶을 때마다 암호를 입력해야하기 때문에 약간 짜증이납니다.
암호없는 ssh에 대한 키를 생성하는 방법에 대한 웹에서 여러 자습서를 찾았지만 모두 원격 시스템에서 홈 시스템과 동일한 사용자 이름을 사용하고 있다고 가정하는 것 같습니다. 그러나 ssh + svn에 사용하는 사용자 이름은 실행중인 시스템의 사용자 계정 이름과 다릅니다. 이를 올바르게 설정하려면 어떻게해야합니까? 키 파일의 이름을 변경하는 데 운이 없었습니다.
svn
명령에 다른 시스템의 사용자 이름을 제공하기 만하면됩니다.
$ svn co svn+ssh://[email protected]/path/to/repo
질문 제목에도 대답하려면 :
$ ssh [email protected]
이렇게하면 원격 컴퓨터의 sshd
에서 명령을 입력하는 컴퓨터의 개인 키에 해당하는 공개 키를 ~otheruser/.ssh/authorized_keys
에서 찾습니다.
이를 수행하는 두 가지 방법이 있습니다.
1) user @를 svn url에 넣습니다. 이것은 svn + ssh에게 해당 사용자로 로그인하도록 지시합니다. 저장소의 다른 부분을 가리키는 외부와 같은 것이 올바르게 작동하지 않기 때문에 유지 관리 관점에서 보면 일종의 나쁜 생각이라고 생각합니다.
2) ~/.ssh/config ( ssh_config 로 문서화 됨)를 다음과 같이 만듭니다.
Host othersystem
User otheruser
이런 식으로 any 다른 시스템에 ssh를 시도하면 기본적으로 otheruser를 사용합니다. ssh를 수동으로 할 때와 svn을 사용할 때 편리합니다.
두 mashines에서 동일한 사용자 이름을 가질 필요는 없습니다. 키 (ssh-keygen
)를 생성하는 한 로컬 서버에서 ~/.ssh/id_rsa.pub
또는 ~/.ssh/id_dsa.pub
(키 유형에 따라 다름)에서 줄을 복사하고 추가해야합니다. 원격에서 ~/.ssh/authorized_keys
로.
% ssh-keygen
% cat ~/.ssh/id_*.pub | ssh [email protected] 'cat > .ssh/authorized_keys'
remoteuser
을 입력하지 않으려면 ~/.ssh/config
에 추가하세요.
Host remoteserver
User remoteuser
추신. 키의 이름 은 [email protected]
형식 일 수 있지만 이름 만입니다. [email protected]
도 가능하며 아무도 신경 쓰지 않습니다.
.ssh/config를 생성하고 다음을 실행합니다.
cat ~/.ssh/id_*.pub | ssh [email protected] 'cat > .ssh/authorized_keys'
오류가 발생합니다.
Bad owner or permissions on /usr/share/eprints3/.ssh/config
그런 다음 chmod 600 .ssh/config
를 추가하면 원활하게 실행됩니다.
enter code here