서버 A에 배포할 일부 소스 파일을 가져오려면 서버 A는 svn+ssh를 통해 서버 B에 연결해야 합니다. 내 배포 스크립트는 다음을 통해 로컬 개발 컴퓨터에서 실행됩니다.
ssh serverA 'bash -s' < deploy.sh
서버 A와 서버 B 사이에 비밀번호 없는 공개/개인 키 쌍이 설정되어 있습니다. 서버 A의 로컬 세션에 로그인했을 때 키체인 설정을 수행했는데 서버 B에 대한 svn+ssh 연결은 문제가 되지 않았습니다. 배포.sh 스크립트는 로컬 세션의 서버 A에서 성공적으로 실행됩니다. 그러나 개발 상자에서 SSH를 통해 연결하면 동일한 스크립트가 원격으로 실행되지 않습니다.
서버 A에서 원격으로 명령을 실행할 때 서버 B가 연결을 허용하도록 배포 스크립트에서 ssh-agent를 어떻게 호출합니까?
답변1
-A
다음과 같이 인증 프록시 연결을 전달하는 옵션을 사용해 보십시오 .
ssh -A serverA 'bash -s' < deploy.sh
답변2
~/.ssh/config
또는 더 나은 방법은 사용자가 시작한 모든 연결에 영향을 미치도록 시스템에 추가하거나 모든 호스트에서 사용하거나 시스템 전체 SSH 클라이언트 구성에 추가하는 것입니다. 이런 방식으로 SSH를 사용하는 모든 애플리케이션은 이점을 누리며 구성을 한 곳에서 유지하기만 하면 됩니다.
SSH 매뉴얼 페이지에서 발췌한 내용도 참조하세요.
-A Enables forwarding of the authentication agent connection. This can also be specified on a per-host basis in a configuration file.
Agent forwarding should be enabled with caution. Users with the ability to bypass file permissions on the remote host (for the agent's
UNIX-domain socket) can access the local agent through the forwarded connection. An attacker cannot obtain key material from the agent,
however they can perform operations on the keys that enable them to authenticate using the identities loaded into the agent.