Sur un serveur Linux, comment utilisez-vous plusieurs terminaux sur une seule connexion SSH?


15

Je me retrouve souvent à ouvrir plusieurs connexions ssh afin de visualiser plusieurs fichiers journaux à la fois avec tail -f.

Ce n'est pas un problème lorsque je suis à la maison car j'utilise le cryptage à clé publique pour une connexion sans mot de passe. Cependant, je vais souvent utiliser l'ordinateur de mon université pour ce faire, je n'ai donc pas la possibilité d'utiliser ma clé privée. Il devient ennuyeux d'entrer mon mot de passe 4 ou 5 fois pour obtenir plusieurs fenêtres de terminal.

Comment obtenir plusieurs terminaux sur une seule connexion?

Réponses:


38

Utilisez simplement l' écran GNU , c'est génial car vous pouvez démarrer des sessions à distance et les restaurer si votre connexion tombe. Il est disponible sous forme de package pour la plupart des distributions et peut même déjà être installé sur votre système universitaire.

Le manuel vous donnera tout ce dont vous avez besoin pour commencer, par défaut toutes les commandes sont précédées de Ctrl+A. Par exemple, pour afficher l'aide à l'écran, appuyez simplement sur Ctrl+Apuis appuyez sur?


Je suis administrateur Linux depuis plusieurs années et j'utilise l'écran de nombreuses fois par jour.

Aucun serveur n'est complet sans écran.
Gert M

2
Après avoir utilisé l'écran au cours des dernières heures, je ne peux pas croire que je vivais sans! J'ai passé 5 ans à le faire mal.
epochwolf


4

Jetez un œil aux deux articles suivants sur le partage de connexion SSH:

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

Fondamentalement, faites une recherche google sur le partage de connexion ssh et vous trouverez un tas d'autres articles dessus.


1
Intéressant. Le seul problème est que si ma connexion Internet devait chuter, je ne serais pas en mesure de me reconnecter sans supprimer le socket. Si je ne parviens pas à me connecter, comment puis-je accéder au serveur pour supprimer le socket?
epochwolf

Vous n'avez pas besoin de supprimer le socket sur le serveur, c'est seulement un partage côté client. Vous exécutez donc `ssh foo 'une fois et cela crée le socket sur la même machine que celle sur laquelle vous avez exécuté la commande ssh foo. Le serveur voit plusieurs connexions sur des ttys séparés, il ne connaît donc pas de connexions distinctes "normales".
David Gardner

3

Vous pouvez éventuellement utiliser le transfert X pour ouvrir plusieurs xterms distants sur votre bureau local.


Le serveur n'a pas installé X11. De plus, ne fonctionne pas sur un système Windows sur lequel je ne peux pas installer de serveur X.
epochwolf

Le serveur Linux n'a pas besoin d'avoir X11 pour exécuter des applications graphiques qui s'affichent sur votre bureau local. En outre, le Cygwin X-Server fonctionne très bien pour exécuter des choses comme Firefox à partir de ma boîte Linux domestique (sans que X fonctionne sur ma boîte domestique) et ils apparaissent très bien sur mon ordinateur portable Windows local.
shapr

2

Vous ne donnez aucune raison impérieuse pour laquelle vous ne pouvez pas utiliser de clés privées des autres systèmes. Générez-les par machine et ajoutez les clés applicables aux hôtes autorisés

Toujours utiliser l'écran.


L'utilisation d'une clé privée sur ce qui équivaut à un ordinateur public est-elle une bonne idée? Surtout que je n'ai pas mis de phrase secrète sur la clé?
epochwolf

1
Vous n'utiliseriez pas la même clé que vous utilisez ailleurs - vous générez une nouvelle clé (avec une phrase secrète) et ajoutez sa clé publique au fichier authorized_keys sur votre serveur. Nommez-le quelque chose comme "clé portable" et retirez-le des clés autorisées si vous pensez qu'il a pu être compromis.
Neall

2

Vous pouvez également regarder byobu . C'est une version améliorée de Screen et je pense que c'est un projet Ubuntu. Mais il est livré en standard avec Ubuntu 9.10 et plus récent.

J'ai tendance à utiliser Screen par habitude, mais je voulais mentionner cette nouvelle alternative.


1

Si vous ne l'utilisez que pour plusieurs fichiers, vous pouvez également être intéressé par le multitail .


Lien intéressant. Je viens de mentionner mon utilisation la plus courante. J'ai également besoin de basculer entre vim et bash pour rechercher des chemins pour les choses.
epochwolf

1

Une fonctionnalité d'écran non mentionnée consiste à «détacher» l'écran et il continuera à exécuter toutes les commandes que vous exécutez dans cet ensemble d'écrans. Une fois l'écran détaché, vous pouvez vous déconnecter et tout continue à s'éloigner même après la déconnexion. Je vais lancer l'écran et ensuite faire plusieurs commandes c pour créer de nouveaux «sous-écrans». Je peux basculer entre eux et commencer une compilation ou un traitement de données de longue durée et être assuré que ma connexion VPN merdique gagnera, car tout mourra avec.

Après vous être déconnecté, vous pouvez vous reconnecter et utiliser 'screen -R' qui vous rattachera à vos sessoins d'écran existants.


0

Pour utiliser screenavec ssh, tapez

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

( source ). homme ssh:

-t Force l'allocation pseudo-terminale. Ceci peut être utilisé pour exécuter des programmes arbitraires sur écran sur une machine distante, ce qui peut être très utile, par exemple lors de la mise en œuvre de services de menu. Plusieurs options -t forcent l'allocation de tty, même si ssh n'a pas de tty local.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.