SSH 프록시 전달을 사용하여 구성하려고 합니다.배포CentOS의 스크립트. 공개 키를 authorized_keys
컴퓨터에 있는 사용자 파일에 복사했습니다 . 암호 프롬프트 없이 배포 사용자를 사용하여 서버에 성공적으로 로그인할 수 있었습니다(예를 들어 배포 사용자의 암호는 잠겨 있었습니다).~/.ssh
deploy
server
passwd -l deploy
내 .ssh 디렉토리에는 Authorized_keys 파일만 포함되어 있습니다.
deploy@server $ ls
authorized_keys
이제 서버에서 내 git 저장소에 액세스할 수 있는 사용자를 배포해야 합니다. 해결책은 SSH 프록시 전달입니다. 서버에서 다음을 수행하여 서버를 통해 저장소에 액세스할 수 있어야 합니다.
# List SSH keys that are loaded into the agent
deploy@server $ ssh-add -l
# Make sure they key is loaded if 'ssh-add -l' didn't show anything
deploy@server $ ssh-add
deploy@server $ ssh -A [email protected] 'git ls-remote [email protected]:capistrano/rails3-bootstrap-devise-cancan.git'
문제는 ssh-add가 키를 로드할 수 없다는 것입니다.
deploy@server $ exec ssh-agent bash
deploy@server $ ssh-add -l
The agent has no identities.
deploy@server $ ssh-add
deploy@server $ echo $?
=> 1
1을 인쇄합니다. 이는 문제가 발생했음을 의미합니다. 설명서에 SSH 에이전트 전달을 사용할 수 있다고 나와 있기 때문에 약간 혼란스럽습니다. 따라서 배포의 .ssh 디렉터리에 id_rsa(개인 키)가 필요하지 않다고 가정합니다. 방금 로컬 시스템의 공개 키를 서버의authorized_keys 파일에 복사한 다음 SSH 에이전트 전달을 사용하여 git 저장소를 인증할 수 있어야 합니다. 그러나 ssh-add에는 개인 키가 있어야 하는 것 같습니다. 문서에는 서버에 개인 키를 생성해야 한다는 내용이 전혀 언급되어 있지 않습니다.
내가 어디서 잘못됐나요?
답변1
뛰어야 한다고 생각하는 건 잘못된 것 같아요ssh-add
서버에서.
authorized-keys
클라이언트 컴퓨터(즉, 위 파일의 공개 키에 해당하는 개인 키가 있는 컴퓨터 server
)가 SSH 연결을 시작하는 경우 인증 에이전트 전달을 활성화해야 합니다. 매개변수로 지정 하거나 일반적으로 편집 하거나 (연결 중인 사용자의 경우 ) 다음을 지정하여 -A
명령줄에서 이 작업을 수행 할 수 있습니다.ssh
/etc/ssh/ssh_config
~/.ssh/config
server
ForwardAgent yes
보안상의 이유로 일반적으로 로 설정됩니다 no
.
ssh-add
계속해서 실행할 server
필요는 없습니다 . 1로 종료되는 이유는 추가(및 전달)할 개인 키를 찾을 수 없기 때문입니다. ssh-add
연결을 만드는 사용자로 클라이언트 컴퓨터에서 실행 중인 경우 다음과 같은 줄이 표시됩니다.
Identity added: /home/your_user/.ssh/id_rsa
해당 파일은 ~/deploy/.ssh
컴퓨터에서 사용할 수 없습니다.server
또한 git 서버에 공개 키가 설치되어 있는지 확인해야 합니다.