Bei ssh Verbindungen werden die Kennworte lesbar dargestellt
Problem:
Wenn man beim Kunden sitzt und sich per ssh auf einen Server verbindet, möchte man in der Regel nicht, dass die eingegebenen Kennworte lesbar dargestellt werden.
Bei folgenden Beispielen ist dies aber der Fall:
Beipiel1:
ssh benutzer@server ‚mysql -u benutzer -p‘
Beispiel2:
ssh benutzer@server „sudo ls“
In der jetzt kommenden Kennwortabfrage wird in beiden Fällen das Kennwort gut lesbar angezeigt.
Lösung:
Um die Passworteingabe wieder zu verstecken, muss man lediglich die Option ‚-t‘ mitgeben. Also:
ssh -t benutzer@server ‚mysql -u benutzer -p‘
bzw.
ssh -t benutzer@server „sudo ls“
Dadurch wird die Kennworteingabe wieder „unsichtbar“ gemacht.
In dem Manpages zu ssh findet man folgende Beschreibung:
-t Force pseudo-terminal allocation. This can be used to execute arbitrary screen-based programs on a remote machine, which can be very useful, e.g. when
implementing menu services. Multiple -t options force tty allocation, even if ssh has no local tty.
Normalerweise wird bei einer ssh-Verbindung kein Pseudoterminal geöffnet, welche die Ein- und Ausgabe mit einem Prozess verbindet.
Daher werden die Kennworteingaben auch nicht maskiert.
Wenn man das dauerhaft haben möchte, ohne jedes Mal das ‚-t‘ eingeben zu müssen, kann man die ‚~/.ssh/config‘ entsprechend bearbeiten. Mehr dazu ist in den Manpages zu lesen:
man 5 ssh_config im Bereich RequestTTY