Su un server Linux come si usano più terminali su una singola connessione SSH?


15

Mi ritrovo spesso ad aprire diverse connessioni ssh per visualizzare più file di registro contemporaneamente tail -f.

Questo non è un problema quando sono a casa perché uso la crittografia a chiave pubblica per l'accesso senza password. Tuttavia, userò spesso il computer presso la mia università per farlo, quindi non ho la possibilità di usare la mia chiave privata. È fastidioso inserire la mia password 4 o 5 volte per ottenere diverse finestre del terminale.

Come posso ottenere più terminali su una singola connessione?

Risposte:


38

Basta usare lo schermo GNU , è fantastico in quanto è possibile avviare sessioni remote e ripristinarle se la connessione si interrompe. È disponibile come pacchetto per la maggior parte delle distribuzioni e potrebbe anche essere già installato sul tuo sistema universitario.

Il manuale ti darà tutto ciò di cui hai bisogno per iniziare, per impostazione predefinita tutti i comandi sono preceduti da Ctrl+A. Ad esempio, per visualizzare la guida su schermo, premere, Ctrl+Aquindi premere?


Sono stato un amministratore Linux per diversi anni e uso lo schermo molte, molte volte al giorno.

Nessun server è completo senza schermo.
Gert M,

2
Dopo aver usato lo schermo per le ultime ore, non posso credere di aver vissuto senza di essa! Ho passato 5 anni a farlo male.
epochwolf,


4

Dai un'occhiata ai seguenti due articoli sulla condivisione della connessione SSH:

http://fermiparadox.wordpress.com/2008/06/19/ssh-connection-sharing/
http://protempore.net/~calvins/howto/ssh-connection-sharing/

Fondamentalmente, fai una ricerca su google sulla condivisione della connessione ssh e troverai un sacco di altri articoli su di esso.


1
Interessante. L'unico problema è che se la mia connessione a Internet dovesse cadere non sarei in grado di riconnettermi senza eliminare il socket. Se non riesco a connettermi come posso accedere al server per eliminare il socket?
epochwolf,

Non è necessario eliminare il socket sul server, è solo una condivisione lato client. Quindi esegui `ssh foo 'una volta e crea il socket sulla stessa macchina su cui hai eseguito il comando ssh foo. Il server vede accessi multipli su tty separati, quindi non conosce accessi separati "normali".
David Gardner,

3

Forse, potresti usare X forwarding per aprire più xterm remoti sul desktop locale.


X11 server non è installato. Inoltre, non realizzabile su un sistema Windows su cui non riesco a installare un server X.
epochwolf,

Non è necessario che il server Linux abbia X11 per eseguire applicazioni grafiche visualizzate sul desktop locale. Inoltre, Cygwin X-Server funziona alla grande per eseguire cose come Firefox dalla mia casella Linux di casa (senza X in esecuzione sulla mia casella di casa) e si presentano bene sul mio laptop Windows locale.
shapr,

2

Non dai motivi validi per cui non puoi utilizzare le chiavi private degli altri sistemi. Generali per macchina e aggiungi le chiavi applicabili a authorized_hosts

Comunque, usa lo schermo.


Usare una chiave privata su ciò che equivale a un computer pubblico è una buona idea? Soprattutto considerando che non ho messo una passphrase sulla chiave?
epochwolf,

1
Non useresti la stessa chiave che usi altrove, genereresti una nuova chiave (con una passphrase) e aggiungeresti la sua chiave pubblica al file authorized_keys sul tuo server. Dagli un nome simile a "portablekey" ed estrailo da authorized_keys se pensi che potrebbe essere stato compromesso.
Neall

2

Potresti anche voler guardare byobu . È una versione migliorata di Screen e credo che sia un progetto Ubuntu. Ma viene fornito di serie con Ubuntu 9.10 e versioni successive.

Tendo comunque ad usare Screen per abitudine, ma volevo menzionare questa nuova alternativa.


1

Se tutto ciò per cui lo stai usando è la coda di più file, potresti anche essere interessato al multitail .


Link interessante. Ho appena citato il mio uso più comune. Devo anche passare da vim a bash per cercare percorsi per le cose.
epochwolf,

1

Una caratteristica dello schermo non menzionata è quella di "staccare" lo schermo e continuerà a eseguire qualsiasi comando tu abbia in esecuzione in quel set di schermi. Una volta scollegato lo schermo, è possibile disconnettersi e tutto continua a staccarsi anche dopo la disconnessione. Avvio schermata e quindi eseguo diversi comandi c per creare nuovi "sottoschermi". Posso passare da una all'altra e iniziare una compilazione a lungo termine o l'elaborazione dei dati e essere sicuro che la mia pessima connessione VPN vincerà perché tutto muore con esso.

Dopo aver effettuato la disconnessione, è possibile accedere nuovamente e utilizzare 'screen -R' che ti ricollegherà ai tuoi sexin dello schermo esistenti.


0

Per utilizzare screencon ssh, tipo

ssh -t <user>@<server> screen -r

( fonte ). man ssh:

-t Forza l'allocazione pseudo-terminale. Questo può essere usato per eseguire programmi arbitrari basati su schermo su una macchina remota, il che può essere molto utile, ad esempio quando si implementano servizi di menu. Le opzioni multiple -t impongono l'allocazione di tty, anche se ssh non ha tty locale.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.