Automatisierte visuelle Hinweise für die Anmeldung an verschiedenen Maschinen?

371
einpoklum

Ich arbeite oft mit 3 Rechnern gleichzeitig, mehrere Sitzungen auf X, mehrere auf Y, und Z ist mein lokaler Rechner, also offensichtlich einige Sitzungen - alle sitzen in einem Terminalfenster / Tabs.

Die Sache ist, ich verwechsle oft meinen lokalen Rechner mit einem entfernten, und dies führt zu amüsanten, aber manchmal etwas tragischen Ergebnissen.

Ich hätte gerne starke visuelle Hinweise, die automatisch ausgelöst werden, wenn ich mich an einer anderen Maschine anmelde, für welche Maschine ich mich befinde, oder zumindest Hinweise, die sich für verschiedene Maschinen erheblich unterscheiden.

Bisher habe ich das Farbschema für entfernte Hosts manuell geändert (mithilfe von Konsole), aber das ist: 1. manuell und 2. unterscheidet nicht zwischen verschiedenen Hosts. Und 1. Handbuch, das ist der nervigste Teil. Wenn Sie diese Einstellung vergessen, haben Sie ein falsches Sicherheitsgefühl.

Anmerkungen:

  • Ich habe bereits eine PS1, die den Hostnamen buchstabiert. Ich brauche etwas auffälligeres als das.
  • Jede vernünftige Heuristik für die Entscheidung, ob ich Hosts umgestellt habe, ist in Ordnung, und Sie können annehmen, dass ich ssh nur verwende, wenn dies hilft.
  • Lösungen, die auch SSHing-within-SSHing unterstützen, sind durchaus willkommen.
  • Ich bin insbesondere (aber nicht ausschließlich) an Terminal-Emulator-Apps interessiert, mit denen Sie nicht nur den Hintergrund als Volltonfarbe steuern können, sondern auch ein Bild schweben lassen oder die Farbe der Titelleiste der Sitzungsleiste / des Fensters ändern Arten von Glocken und Pfeifen. Eigentlich würde wahrscheinlich etwas mit echtem Schnickschnack den Trick tun :-)
0
Das Anpassen der Eingabeaufforderung (PS1) mithilfe von Farben und / oder hostspezifischen Zeichenfolgen in der .rc der Shell ist der übliche Weg, um solche Katastrophen zu vermeiden. Eigentlich ist es auch keine ultimative Sicherheit. Sie sollten nicht überall auf root zugreifen, sondern eigene IDs verwenden und über sudo alles sensible starten. DIFFERENT-Passwörter auf allen Hosts zu haben (dies ist ein Muss, nicht wahr?), Würde Sie wirklich davon abhalten, sudo ugly_command auf X zu starten, während Sie es wollten auf Y laufen Gombai Sándor vor 7 Jahren 0
Durch das Echo der richtigen Ansi-Farbsequenzen (Echo -e '...') in der .rc kann der Hintergrund der Sitzung festgelegt werden. Probieren Sie es einfach aus: echo -e "\ e [44m"; Klar Dann sehen Sie das hier: https://en.wikipedia.org/wiki/ANSI_escape_code#Colors Gombai Sándor vor 7 Jahren 0
@ GombaiSándor: Ich arbeite sowieso überall als Nicht-Root (die meisten Orte, an denen ich nicht einmal Root-Zugriff habe), also ist das keine große Hilfe. Ich denke, es wäre vielleicht nützlich, mein Prompt mit Escapess in PS1 zu färben. Wenn Sie eine Antwort mit einem Beispiel geben, haben Sie eine positive Meinung :-) einpoklum vor 7 Jahren 0

2 Antworten auf die Frage

1
egmont

Schauen Sie sich Terminix an . Dazu gehören Funktionen wie das Zitieren der Startseite: "Automatische (ausgelöste) Profilumschaltung basierend auf Hostname und Verzeichnis".

(Oder iTerm2, wenn Sie einen Mac verwenden, wenn Sie jedoch Konsole verwenden, deutet dies an, dass dies wahrscheinlich nicht der Fall ist.)

0
Gombai Sándor

Meine grundlegende Aufforderung:

$ echo $PS1 \u@\h\w\$ 

Wenn der Host grün sein soll, wähle ich die Escape-Sequenz von Grün aus der Ansi-Farbliste ( \ e [32m ) aus und stelle die Sequenz des Hosts ( \ h ) voran und setze die Sequenz von reset ( [0m ). damit andere Teile mit normalen Zeichen sein. Daher ist meine neue PS1

export PS1='\u@\e[32m\h\e[0m\w\$ ' 

Wenn ich es in meine .bashrc stecke, würde ich die Aufforderung an diesem Host wählen.

Wenn ich mehr will, sagen wir mal, mein Hintergrund wäre Cyan, dann würde ich die Hintergrundsequenz mit einem Echo-Befehl einstellen und dann einfach den Bildschirm löschen:

echo -e '\e[46m'; clear