이것이 SSH를 사용하는 LocalCommand의 의도된 사용 사례가 아니라는 것을 알고 있지만 명령을 실행한 다음 LocalCommand를 사용하여 직접 SSH 세션을 종료하려는 경우 가능합니까?
예를 들어:
LocalCommand <some command>; exit
위의 방법을 시도했지만 작동하지 않는 것 같고 여전히 쉘이 생성됩니다.
답변1
해결 방법 1:
ssh [email protected] 'cd foo/bar && rm *.foobar'
이는 여전히 출력을 표준 출력으로 인쇄하지만 명령을 실행한 후 기본적으로 종료됩니다.
해결 방법 2:
사용 사례에 대한 해결 방법: 언급한 설명에 따라 이 ssh 명령에만 ssh를 사용합니다.
다음과 같은 파일을 편집할 수 있습니다./etc/profile
마지막 줄에 실행하려는 명령을 모두 입력한 다음 종료를 입력하세요.
전임자:
ls / > /tmp/output
exit
그러면 명령이 실행되고 세션이 종료됩니다.
just 를 사용하여 호출할 수 ssh user@host
있으며 다른 것은 필요하지 않습니다.
추신: 이것은 단지 명령을 실행하고 종료됩니다. 시스템에 SSH로 접속하여 작업을 수행하려는 경우 이를 수행할 수 없다는 점을 기억하십시오.내보내기의 마지막 줄을 제거하지 않는 한.
답변2
로컬 명령은 SSH 클라이언트 프로세스의 하위 프로세스입니다. 세션을 닫으려면 kill local 명령의 상위 클라이언트를 종료하면 됩니다.
LocalCommand kill $PPID
그런 다음 SSH가 원격 호스트에 연결되고 인증이 수행되면 원격 명령을 실행하기 전에 클라이언트가 종료됩니다.
요점이 보이지 않습니다. 로그인 후 즉시 종료되는 무작동 원격 명령( ssh ''
또는 )을 실행해 보는 것은 어떨까요?ssh :