[server] 어떻게 “inner”ssh 세션으로 명령을 보낼 수 있습니까?

로컬 컴퓨터에서 서버 ( “Wallace”라고 함)에 로그인 ssh하고 다른 서버 ( “Gromit”이라고 함)에 로그인 한 시나리오를 상상해보십시오.

laptop ---ssh---> Wallace ---ssh---> Gromit

그런 다음 Wallace에서 Gromit까지의 ssh 세션이 중단되고 종료하고 싶습니다. ~.ssh를 죽이려고 입력 하면 해당 ssh 세션 ~이 인터셉트 하여 Wallace로 ssh 세션을 종료하고 세션 .을 종료하는 명령으로 사용됩니다. Wallace와 Gromit 사이의 ssh 세션에 명령을 보내려면 어떻게해야합니까? “내부”ssh를 어떻게 죽이나 요?



답변

다른 물결표를 추가하십시오 (예 🙂 ~~.. 각 연속 물결표는 아직 먹지 않은 가장 바깥 쪽 ssh 세션에서 먹지만 다음 문자가 다른 물결표이면 다음 세션으로 전달됩니다.

gromit 1 에서 세 번째 호스트로 ssh’ed 한 경우 (wensleydale이라고 함) ~~~.세션을 wensleydale로 드롭하고 gromit에 대한 프롬프트로 돌아갑니다.

1 그리고 얼마나 훌륭한 서버입니까; 개발자의 “크래킹 호스트, 그로밋”이라는 말을 얼마나 자주들을 수 있습니까?


답변

임의의 명령을 실행하고 가장 안쪽 쉘의 출력을 변수로 잡을 수 있습니다.

export output=`echo some_cmd | ssh user@host |  echo some_cmd2 | ssh user2@host2`


답변