3

E.g. when I SSH into a server and then sudo bash and then su <user> to do some work, I want a quick way to exit all shells back to my local terminal.

going in

When I have to do some work on a server as jim.

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

going out

When my work is complete but I don't want to leave the shells logged in.

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

preferred way out

Here's how I'd like to do it.

server:jim > exitall // for example
local > // after one command
5
  • 2
    Does ENTER ~ . meet your requirements?
    – icarus
    Aug 7, 2019 at 20:37
  • 4
    Do you need to do anything as root? If not you could run exec sudo su - jim as the command on the server, and then exit will take you all the way out.
    – icarus
    Aug 7, 2019 at 20:41
  • I don't think Linux does this, but stty 0 on some systems will drop your connection. Aug 7, 2019 at 21:21
  • Also unix.stackexchange.com/questions/507011/…
    – muru
    Aug 8, 2019 at 0:45
  • @icarus Thanks for the tip to skip root -- very obvious now that you mention it. :-)
    – Josh M.
    Aug 12, 2019 at 11:36

2 Answers 2

4

If you're open to a proactive (vs retroactive) solution, consider using exec for the intermediate steps that you want to bypass on the way out:

going in (modified):

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

going out

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

Using exec replaces your current shell with the listed command; as a result, when you exit out of jim's shell, your root shell exits, which then causes the sudo bash shell to exit, leaving you back where you started.

1
  • Cool, I'll give it a go!
    – Josh M.
    Aug 12, 2019 at 11:37
3

I found the fastest way is to use Ctrl + D as many times as needed which will terminate each bash session

1
  • Great, thanks! I'll try it out.
    – Josh M.
    Aug 12, 2019 at 11:37

Not the answer you're looking for? Browse other questions tagged .