SSH 연결의 "모든 수준"을 종료하시겠습니까? [복사]

SSH 연결의 "모든 수준"을 종료하시겠습니까? [복사]

예를 들어, 서버에 SSH로 접속한 후 일부 작업을 sudo bash수행할 때 su <user>모든 셸을 로컬 터미널로 다시 종료하는 빠른 방법을 원합니다.

들어가다

내가 일을 좀 해야 할 때섬기는 사람~처럼.

local > ssh me@server
server:me > sudo bash
server:root > su jim
server:jim > // do stuff as jim

나가

작업이 완료되었지만 쉘이 로그인 상태를 유지하는 것을 원하지 않는 경우.

server:jim > exit
server:root > exit
server:me > exit
local > // after 3 commands

선호하는 탈출구

나는 이것을하고 싶다.

server:jim > exitall // for example
local > // after one command

답변1

사전 대응(소급이 아닌) 솔루션을 사용하려는 경우 exec우회하려는 중간 단계를 사용하는 것이 좋습니다.

입력(수정):

local > ssh me@server
server:me > exec sudo bash
server:root > exec su jim
server:jim > // do stuff as jim

나가

server:jim > exit
local > // after 1 command

exec현재 쉘을 나열된 명령 으로 대체합니다. 따라서 exitjim의 쉘을 종료하면 루트 쉘도 종료되어 쉘이 sudo bash종료되고 시작한 곳으로 돌아갑니다.

답변2

내가 찾은 가장 빠른 방법은 필요한 만큼 Ctrl+D를 사용하는 것입니다. 이렇게 하면 모든 bash 세션이 종료됩니다.

관련 정보