저는 ssh 클라이언트와 server_1 및 server_2만 설치하는 클라이언트라는 세 개의 시스템을 가지고 있습니다. 나는 SSH 공개 인증을 사용하고 있으며 클라이언트에서 server_1과 server_2 모두로 SSH를 보낼 수 있습니다. 서버 1에 대해 동일한 공개 키를 저장했고 이제 에이전트 전달을 사용하여 서버 1에서 서버 2로 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로(동일한 키 사용)
다음 명령을 수행하면 됩니다.
클라이언트에서:
tmux를 사용하거나 2개의 터미널을 엽니다.
ssh user@server1
새 터미널에서:
ssh user@server2
답변3
간단한 대답은 다음과 같은 플래그를 추가하는 것입니다 -A
.
ssh -A [user]@[hostname]