![SSH 세션을 통해서만 내 개인 키를 보내세요.](https://linux55.com/image/87168/SSH%20%EC%84%B8%EC%85%98%EC%9D%84%20%ED%86%B5%ED%95%B4%EC%84%9C%EB%A7%8C%20%EB%82%B4%20%EA%B0%9C%EC%9D%B8%20%ED%82%A4%EB%A5%BC%20%EB%B3%B4%EB%82%B4%EC%84%B8%EC%9A%94..png)
내 시나리오:
localhost: contains my private key
serverA: contains my public key
serverB: contains my public key
나는 다음에 로그인되어 있습니다서버 A일부 파일을 복사하는 것과 관련된 일부 작업을 수행합니다.서버 B공통 사용자 이름으로 로그인하기 때문에 개인 키가 저장되는 것을 원하지 않습니다.서버 A. 즉, 이상적으로는 다음을 수행할 수 있습니다.SSH 세션을 통해서만 내 개인 키를 보내세요.사용 가능하게 만든 ssh-agent
다음부터 시작합니다.서버 A도착하다서버 B, 내 개인 키를 메모리에서 읽어 검증에 사용합니다.서버 B. 가능합니까?
답변1
예, 그것이 ssh -A
바로 표지판의 목적입니다.
ssh-agent
이는 실행에 추가된 키 에 대해서만 작동합니다.현지의기계. 연결할 때 비밀번호를 입력해야 하는 경우 serverA
(또는 비밀번호 없는 키를 사용하는 경우) 에는 작동하지 않습니다.
매뉴얼 페이지에서:
-ㅏ
인증 프록시 연결 전달을 활성화합니다. 이는 구성 파일에서 호스트별로 지정할 수도 있습니다.프록시 전달은 주의해서 활성화해야 합니다. 원격 호스트(에이전트의 UNIX 도메인 소켓용)에서 파일 권한을 우회할 수 있는 사용자는 전달된 연결을 통해 로컬 에이전트에 액세스할 수 있습니다. 공격자는 프록시에서 키 자료를 얻을 수 없지만 프록시에 로드된 ID를 사용하여 인증할 수 있는 키에 대한 작업을 수행할 수 있습니다.
-ㅏ
인증 프록시 연결 전달을 비활성화합니다.
그러나 인용문에 있는 경고 사항에 주의를 기울이는 것이 좋습니다. -A
키를 노출하지는 않지만 누구에게나 ssh-agent 소켓에 대한 읽기/쓰기 액세스를 허용합니다.서버에서소켓을 찾을 위치를 알고 있으면 자격 증명을 사용할 수 있습니다. 일반 사용자로 로그인되어 있으므로 해당 사용자에 대한 접근 권한이 있는 다른 사람은 누구나 접근할 수 있습니다.당신의대리인.
내 생각엔 SSH_AUTH_SOCK
서버에 있는 것은 서버에서 실행되는 SSH-agent에 직접 트래픽을 전달하는 것뿐입니다.현지의기계.