Ich möchte Bildschirmsitzungen auf Remote-Servern mit einem einzigen ssh-Befehl auf meinem Desktop starten können. Der Bildschirm scheint jedoch ein Terminal zu benötigen, das nicht verfügbar ist, wenn ein Befehl über ssh ausgeführt wird.
Also das Offensichtliche
ssh [email protected] screen "tail -f /var/log/messages"
(als Beispiel) funktioniert nicht und gibt
Must be connected to a terminal.
Ich möchte, dass ssh den Befehl unter einem Bildschirm startet, damit ich mich später anmelden und eine Verbindung zu einer Bildschirmsitzung herstellen kann, die ich manuell gestartet hätte.
ssh
terminal
gnu-screen
tty
Thomas Vander Stichele
quelle
quelle
Antworten:
Versuchen Sie es mit der Option -t für ssh
Vom Menschen ssh
quelle
ssh -t user@machine tmux attach
und ich kann eine entfernte tmux-Sitzung anhängen, aber es bringt die Zeichenkodierung durcheinander. Es werden nur ASCII-Zeichen angezeigt. Gibt es eine Lösung dafür?Sie können verwenden:
Dadurch wird ein losgelöster Bildschirm mit einem darauf ausgeführten Befehl gestartet.
quelle
Späte Antwort, aber das ist, was ich tue, ich mache einen Alias (nennen wir es t), der dies tut:
Dies weist Sie
ssh
an, die Agent- und X11-Weiterleitung zu deaktivieren undscreen
eine Verbindung zu einer laufenden Sitzung herzustellen, bei Bedarf eine neue Sitzung zu starten,^Z
als Breakout-Befehl zu verwenden, UTF-8 zu verwenden und das Terminal im Auge zu behalten.All dies bedeutet, dass ich ein Terminal öffnen kann,
t
tippe und es öffnet meine Bildschirmsitzung auf $ MYSERVER. Ich kann dann ein anderes Terminal öffnen, dasselbe tun und ein anderes Fenster für dieselbe Sitzung öffnen.Es ist wirklich schön, mehrere Terminalfenster für dieselbe Bildschirmsitzung zu haben, damit Sie zwei Bildschirmregisterkarten gleichzeitig anzeigen können.
quelle
t
der ein einzelner Host ist, können Sie ihn mit Hostnamen in Ihrer ssh_config kombinieren.Wenn Sie Folgendes in die Datei ~ / .bashrc auf meinem Server einfügen, wird eine Bildschirmsitzung gestartet, wenn ich mich zum ersten Mal am Server anmelde oder wenn bereits eine ausgeführt wird, wird eine erneute Verbindung zu dieser Sitzung hergestellt.
Ich finde das sehr praktisch:
quelle
screen -ls
sehe ich keine Bildschirmsitzung