SSH 에이전트 전달을 사용하는 방법

SSH 에이전트 전달을 사용하는 방법

저는 ssh 클라이언트와 server_1 및 server_2만 설치하는 클라이언트라는 세 개의 시스템을 가지고 있습니다. 나는 SSH 공개 인증을 사용하고 있으며 클라이언트에서 server_1과 server_2 모두로 SSH를 보낼 수 있습니다. 서버 1에 대해 동일한 공개 키를 저장했고 이제 에이전트 전달을 사용하여 서버 1에서 서버 2로 ssh를 보내고 싶습니다. 개인 키는 클라이언트에만 유지하고 싶습니다. 최대한 빨리 도와주세요. 이 시나리오를 어떻게 수행할 수 있습니까? 이 링크를 사용하지만 어떻게 해야 할지 모르겠습니다.

SSH 에이전트 전달에 대한 그림 가이드: 에이전트 전달을 통한 공개 키 액세스

답변1

ssh-agent먼저 클라이언트에서 키를 기억하도록 호출해야 합니다.

ssh-agent -t 3600 ~/.ssh/private_key_rsa

(키가 에 저장되어 있다고 가정하면 무한 수명을 원하는 경우 ~/.ssh/private_key_rsa을 생략할 수도 있습니다 )-t 3600

-A그런 다음 옵션 을 사용하여 서버 중 하나에 SSH로 연결하면 됩니다.

ssh -A server1

거기에서 SSH를 통해 server2에 접속할 수 있습니다

ssh server2

매번 옵션을 지정하지 않으려면 클라이언트 및 선택적으로 두 서버 모두 -A에 다음을 추가할 수 있습니다 .~/.ssh/config

Host server1
 ForwardAgent yes

Host server2
 ForwardAgent yes

이는 서버 수에 관계없이 작동합니다. 짧게 유지하려면 ~/.ssh/config다음과 같은 와일드카드를 사용할 수 있습니다.

Host server?
  ForwardAgent yes

답변2

서버 호스트를 localhost로 전달:

ssh -L localhost:22:localhost:22 user@host

또는

ssh -N -f -L serverhost:22:localhost:22 user@server1

질문을 다시 읽은 후.

server1에 SSH로 접속하고 싶습니다:

ssh user@server1

그런 다음 server2에 ssh를 사용하고 싶습니다.

클라이언트의 새 터미널에서 다음을 수행하십시오.

ssh user@server1
ssh user@server2

그러면 2개의 연결이 있습니다.

  1. 클라이언트에서 서버 1로
  2. 클라이언트에서 서버 1 ==> 서버 2

갖고 싶은 경우:

  1. 클라이언트에서 서버 1로
  2. 클라이언트에서 서버 2로(동일한 키 사용)

다음 명령을 수행하면 됩니다.

클라이언트에서:

tmux를 사용하거나 2개의 터미널을 엽니다.

ssh user@server1

새 터미널에서:

ssh user@server2

답변3

간단한 대답은 다음과 같은 플래그를 추가하는 것입니다 -A.

ssh -A [user]@[hostname]

관련 정보