Je souhaite pouvoir lancer des sessions d'écran sur des serveurs distants à partir d'une seule commande ssh sur mon bureau. Cependant, l'écran semble avoir besoin d'un terminal, qui n'est pas disponible lors de l'exécution d'une commande via ssh.
Donc l'évidence
ssh [email protected] screen "tail -f /var/log/messages"
(à titre d'exemple) ne fonctionne pas, et donne
Must be connected to a terminal.
Je veux que ssh lance la commande sous un écran afin que je puisse me connecter ultérieurement et l'attacher comme je le ferais à une session d'écran que j'aurais lancée manuellement.
ssh
terminal
gnu-screen
tty
Thomas Vander Stichele
la source
la source
Réponses:
Essayez d'utiliser l'option -t pour ssh
De l'homme ssh
la source
ssh -t user@machine tmux attach
et je peux attacher une session à distance de tmux mais cela dérange avec l'encodage de caractère. Il affiche uniquement les caractères ascii. Y at-il un correctif pour cela?Vous pouvez utiliser:
Cela commence un écran détaché avec une commande en cours d'exécution sur celui-ci.
la source
Réponse tardive, mais voici ce que je fais, je fais un alias (appelons-le t) qui fait ceci:
Cela indique
ssh
de désactiver l'agent et le transfert X11, etscreen
d'attacher à une session en cours, d'en démarrer une nouvelle si nécessaire, de l'utiliser^Z
comme commande de dérivation, d'utiliser UTF-8 et de faire preuve d'intelligence concernant le terminal.Tout cela signifie que je peux ouvrir un terminal, taper
t
et cela ouvrira ma session d’écran sur $ MYSERVER. Je peux alors ouvrir un autre terminal, faire la même chose et obtenir une autre fenêtre pour la même session.Il est vraiment agréable d’avoir plusieurs fenêtres de terminal pour la même session d’écran, ce qui vous permet de regarder deux onglets d’écran en même temps.
la source
t
qui est un hôte unique, vous pouvez le combiner avec des noms d’hôtes dans votre ssh_config.En insérant le texte suivant dans le fichier ~ / .bashrc sur mon serveur, il démarre une session d'écran la première fois que je me connecte au serveur ou, s'il en existe déjà une, me reconnecte à cette session.
Je trouve cela très pratique:
la source
screen -ls
ça, je ne vois aucune session d'écran