Ouvrir une autre fenêtre de terminal avec la même session SSH que la fenêtre d'origine

42

Est-il possible d'ouvrir une fenêtre de terminal (ou un onglet) avec une autre instance d'une session SSH ouverte?

EDIT: J'ai une fenêtre de terminal avec une session SSH à distance sur un serveur. Je veux ouvrir un nouvel onglet connecté à la même session ssh distante.

Avec Fichier-> Nouvel onglet, je reçois un autre onglet mais je dois ouvrir une autre session SSH sur le serveur distant.

Tulains Córdova
la source
Si vous utilisez ssh-copy-id et une configuration SSH locale, la connexion à votrewebserver.company.net est semblable à "ssh web", sans même avoir besoin de vous authentifier.
davidbaumann
@davidbaumann Le commentaire est trop concis. Pourriez-vous élaborer dans une réponse? Qu'est-ce que 'ssh web'? Comment cela permet-il d’ouvrir une nouvelle fenêtre de terminal avec la même session que?
Tulains Córdova
Ce n'est pas la même session, mais la connexion par SSH facilitera votre travail, vous n'aurez besoin d'aucune astuce.
davidbaumann
@davidbaumann, la même session signifie le même utilisateur (si vous avez utilisé su - someuser), les mêmes variables d’environnement (si vous avez créé un fichier src), le même répertoire de travail, le même historique, etc. Ne fais pas tout le reste.
Tulains Córdova

Réponses:

14

Connectez-vous à votre serveur distant avec:

ssh -X [remote-host]      

Maintenant, lancez:

gnome-terminal &

Un terminal apparaîtra sur votre ordinateur local. À partir de ce terminal, vous pouvez exécuter autant de fois que vous le souhaitez d'onglets ou de fenêtres de terminal. Ils utiliseront tous la même sshconnexion et seront connectés à la machine distante.

LD James
la source
L'hôte distant est Debian et n'a pas gnome-terminal. Quel est le nom de l'application de terminal dans Debian?
Tulains Córdova
1
@ user1598390 Sur mon installation, (Version 7 - wheezy)l'application de terminal par défaut est gnome-terminal. Il existe d'autres applications de terminal installées. Ils sont xterm, lxtermet uxterm. Je crois que le plus commun sur la plupart des distributions sera xterm. Vous pouvez obtenir une liste des applications de terminal avec la ligne de commande cd /usr/bin;ls *term*.
LD James
1
J'ai essayé et ça ne marche pas pour moi.
Tulains Córdova
Quel est le message d'erreur que vous obtenez lorsque vous exécutez cd /usr/bin;ls *term*? En d'autres termes, quelle est la cli que vous avez exécutée et quel était le message d'erreur?
LD James
L'erreur est lors de l'exécution xterm&-> [1] 26953 postgres@serverxxx:/usr/bin$ X11 connection rejected because of wrong authentication. xterm: Xt error: Can't open display: localhost:10.0Même si j'ai couru xhost +sur la machine locale. Et même quand je le faisaisssh -X
Tulains Córdova
36

Peut-être que cela pourrait aider: screen

Il n'est pas installé par défaut sur Ubuntu, mais est fourni dans les référentiels.

C'est très utile: sshà un hôte distant et tapez screenpour entrer dans une screensession.

Commencez la tâche qui vous prend le plus de temps, puis appuyez sur Ctrl+ Asuivi de Ctrl+ Cpour créer une nouvelle fenêtre dans la session d’écran.

Cela créera un nouveau shell où vous pourrez faire ce que vous voulez. Créez encore plus de fenêtres en utilisant la même commande.

Pour basculer rapidement entre deux fenêtres, utilisez à nouveau Ctrl+ Asuivi du Ctrl+ A. Comme vous pouvez le voir, Ctrl+ Amet l'écran en mode commande.

Ctrl+ A Ctrl+ Dse détachera de la session d'écran. Vous pouvez ensuite vous déconnecter de l'hôte, vous reconnecter plus tard et utiliser screen -drpour reprendre votre session.

Pour accéder à une screenfenêtre spécifique , tapez Ctrl+ Asuivi d'un nombre.

L'écran se ferme lorsque toutes les fenêtres actives sont fermées (ou que les coques à l'intérieur sont sorties).

Je l'ai eu des sessions SSH et SFTP .

Modifier-

tmux est une alternative à screen. http://www.sitepoint.com/tmux-a-simple-start/

aaditya1234
la source
"Screen" n'a-t-il pas besoin d'être installé sur l'hôte distant?
Tulains Córdova
Je suppose que si.
aaditya1234
Je dois me connecter à de nombreux serveurs de production : serveurs Solaris (nouvelles versions ainsi que versions héritées), serveurs Debian (plusieurs versions) et serveurs RedHat (plusieurs versions). Il est hors de question d'installer un nouveau logiciel dans chacun d'entre eux.
Tulains Córdova
Ah, voici quelque chose qu'un ami m'a dit comment il gère plusieurs installations: bjoernvold.com/forum/viewtopic.php?f=11&t=3228
aaditya1234
1
Lorsque j'utilise l'écran, je ne peux pas faire défiler de haut en bas, alors que je peux faire défiler de haut en bas dans la ligne de commande normale (celle que j'obtiens tout de suite après ssh user@machine).
ComputerScientist
0

Je l'ai déjà fait auparavant: Lancez gnome-terminal sur le serveur. Ctrl + Z puis BG de votre fenêtre de terminal d'origine.

J'utilise normalement ssh -X-C, vous devrez peut-être le faire, mais je ne suis pas sûr. En outre, il utilisera les paramètres de votre serveur au lieu de ceux de votre ordinateur, ce qui est parfois gênant.

ce n'est pas de ma faute
la source
-2

Oui, dans le terminal (menu), cliquez sur Fichier -> Nouvel onglet

ouvrir un nouvel onglet dans le terminal

ou demandez-vous autre chose?

aaditya1234
la source
Peut-être que je n'étais pas assez clair. J'ai une fenêtre de terminal avec une session ssh distante sur un autre serveur. Je veux ouvrir un nouvel onglet connecté à la même session ssh distante. Regardez l'édition dans la question.
Tulains Córdova
ok..got votre question. cherchera la réponse comme je le sais déjà.
aaditya1234
Certains terminaux propriétaires pour Windows le font. Mais je préférerais utiliser le terminal d'Ubuntu.
Tulains Córdova