Im Gegensatz zu bash
, ssh
‚s Passwortabfrage verwendet keine spezielle Terminal-Eingang Bibliothek wie readline
. Die Zeilenbearbeitungsfunktionen sind nur die POSIX TTY-Grundfunktionen für die Zeilenbearbeitung.
Sie haben also eine POSIX TTY im "gekochten" Modus (nicht roh), auch bekannt als kanonischer Modus, und die einzige verfügbare Zeilenbearbeitung ist die vom Kernel bereitgestellte. Sehen Sie stty(1)
und bemerken Sie das
kill = ^U
. Hier wird auch das Backspace-Zeichen definiert ( erase = ^?
). Das Löschen von Wörtern ( ^W
) ist praktisch, wenn Sie nicht blind tippen.
lnext = ^V
bedeutet, dass Sie control-v und dann alles (einschließlich control-c) eingeben können, um ein literales control-c zu erhalten.
Um zu debuggen, was Sie versucht haben, führen Sie cat
oder cat > /dev/null
in Ihrem Terminal . Geben Sie Zeug ein, und sehen Sie dann, was funktioniert und was nicht, um es zu bearbeiten.
readline
(verwendet von bash
) liest das rohe Zeichen und bearbeitet die Zeilen im User-Space. Die Standardbindungen sind jedoch mit den Standard-TTY-Steuerzeichen für die Teilmenge der Bearbeitungsfunktionen kompatibel, die beide bereitstellen.
readline geht weit über die einfache Zeilenbearbeitung eines normalen TTY hinaus. (zB ein TTY kann nur Zeichen am Ende der Zeile löschen, es gibt also keinen ^a
und delete
oder Links / Rechts-Pfeil)
Wenn bash
ein Befehl im Vordergrund ausgeführt wird, wird der TTY zuerst in den kanonischen Modus versetzt (da dies die Standardeinstellung ist). Wenn Sie also ausführen stty -a
(ohne Umleitung), wird immer ein eigenes Terminal im kanonischen Modus angezeigt. Wenn Sie jedoch Eingaben von einem anderen TTY umleiten bash
, auf dem ausgeführt wird, können Sie sehen, welche Terminaleinstellungen Bash + Readline angewendet haben. ZB stty -a < /dev/pts/12
zeigt -icanon
für RAW-Modus, weil ich bash
auf diesem Terminal ein laufendes habe. (Ich habe zu einem anderen Tab gewechselt und bin tty
dann diesen Gerätedateipfad vom ersten Terminal aus verwendet). Wenn ich cat
in diesem anderen Terminal icanon
laufen würde, würde ich nach dem kanonischen Modus suchen.
Verwandte: Der TTY entmystifiziert
https://www.gnu.org/software/libc/manual/html_node/Canonical-or-Not.html
https://en.wikipedia.org/wiki/POSIX_terminal_interface
ssh
eines Skripts können Sie die Parameterzeichenfolge analysieren, bevor Sie sie ausführen.su
werden Sie root. Der nächste Schritt besteht darin, kennwortbasierte Authentifizierungsschemata in SSH zu deaktivieren und Schlüssel für die Anmeldung zu verwenden.