SSH를 통해 AWS에 연결하는 스크립트가 있습니다. 스크립트의 내용은 매우 간단합니다.
#! /bin/bash
ssh -i private_key.pem [email protected]
터미널에서 이 스크립트를 실행합니다.
./connect
그래서 이 AWS에 연결했습니다.
제가 하고 싶은 일은 하나의 AWS를 두 번째 AWS에 연결하는 것입니다. 기본적으로 스크립트를 실행한 후 다음을 입력할 수 있습니다.
ssh second_aws
하지만 스크립트를 실행하면 터미널이 다음과 같이 두 번째 AWS에 연결되도록 이 작업을 스크립트에서 수행하고 싶습니다.
#! /bin/bash
ssh -i private_key.pem [email protected]
ssh second_aws
그런데 실행하면 하나의 AWS로 이동하고 두 번째 AWS에는 연결되지 않습니다.
이 스크립트를 어떻게 사용하고 터미널에서 실행하면 내 터미널이 두 번째 컴퓨터에 연결됩니까?
답변1
ssh
쉘을 제공하는 대신 첫 번째 호스트에 명령을 실행하도록 지시하는 것을 고려하십시오 .
ssh -t -i private_key.pem [email protected] ssh -t second_aws
답변2
당신이 한 일은 AWS 인스턴스에 대한 두 번째 연결을 열지 않았습니다. 시작 스크립트 위치에서 연결을 엽니다.
이 옵션을 찾아야 합니다 ProxyJump
. 여러 SSH 연결을 연결할 수 있습니다.
다음은 페이지에서 발췌한 내용입니다 man
.
ProxyJump
Specifies one or more jump proxies as either [user@]host[:port] or an ssh URI. Multiple proxies may be separated by comma characters and will be visited sequentially. Setting this option will cause ssh(1) to connect
to the target host by first making a ssh(1) connection to the specified ProxyJump host and then establishing a TCP forwarding to the ultimate target from there.
Note that this option will compete with the ProxyCommand option - whichever is specified first will prevent later instances of the other from taking effect.
Note also that the configuration for the destination host (either supplied via the command-line or the configuration file) is not generally applied to jump hosts. ~/.ssh/config should be used if specific configuration
is required for jump hosts.