7

I can use screen or tmux to connect to other terminal sessions, or to share them. But this work only when we first know we will use them.
As root can access everything, is there a way to do the same thing without running screen ? Some pipes through tee or so.

For example to remotely take over a console or ssh session someone left open. Allowing to see what's on and close things correctly.

Bertrand SCHITS
  • 2,922
  • 1
  • 13
  • 15

5 Answers5

2

I only know a systemtap recipe. Hawfully basic, but maybe someone skilled could improve it.

Else you can have a look at conspy. I know you use Debian, just apt-get it. It only has access to the console, not ssh.
ttysnoop is nice but, as you stated, needs to be installed first.

Gregory MOUSSAT
  • 1,673
  • 2
  • 25
  • 50
1

In the past I used TTYsnoop, which still seems to be included in Debian and Ubuntu.

HBruijn
  • 77,029
  • 24
  • 135
  • 201
0

Short answer: not with stock tools.

You could cobble something together that poked the kernel and trolled through file descriptors, but the effort you would have to put in would be far greater than the return you would get from it.

John
  • 9,070
  • 1
  • 29
  • 34
-1

Check out SSHLog: https://github.com/sshlog/agent

It's a Linux daemon that uses eBPF filters to allow admin users to "attach" to other sessions on the server. So if other users are running on that server you can see them:

jim@devlaptop:~$ sshlog sessions
  
 User        Last Activity             Last Command               Session Start              Client IP           TTY
jim             just now              /usr/bin/gcc             2023-04-10 16:16:18        127.0.0.1:58668         17
billy          10 min ago            /usr/sbin/fdisk           2023-04-10 12:11:05        15.12.5.8:58669         32

And attach to them:

jim@devlaptop:~$ sshlog attach 32

Attached to TTY 32.  Press CTRL+Q to exit

billy@devlaptop:~$ 
-1

I had the problem of doing an upgrade of ubuntu over ssh and lost the connection right in the middle. I thought I was doomed. After some research, I found that I could resume an existing ssh session using a command line option of screen.

First, I ran the following.

screen -d -r

This gave me a list of existing sessions. Each session was listed with a PID. So, I then ran the following command to get the abandoned session back.

screen -d -r <pid>

I am so glad I found this and was able to continue the upgrade. I had a feeling that rebooting would have ruined everything and was out of the question.

  • 1
    This answer does not apply to the question. They were looking for solutions not using either screen nor tmux. – Gene Aug 21 '15 at 17:57