# 1 - Fehlendes Paket?
Sie vermissen wahrscheinlich das Paket, das enthält ssh-askpass. Versuchen Sie es zu installieren.
Fedora / CentOS / RHEL:
$ sudo yum install openssh-askpass
Debian / Ubuntu:
$ sudo apt-get install ssh-askpass-gnome ssh-askpass
Suche nach fehlenden Dienstprogrammen
Mit diesen Befehlen können Sie nach fehlenden Werkzeugen suchen:
Fedora / CentOS / RHEL:
$ yum search ssh-askpass
Loaded plugins: langpacks, presto, refresh-packagekit
Adding en_US to language list
======================================================= Matched: ssh-askpass =======================================================
x11-ssh-askpass.x86_64 : A passphrase dialog for X and not only for OpenSSH
ksshaskpass.x86_64 : A KDE version of ssh-askpass with KWallet support
connect-proxy.x86_64 : SSH Proxy command helper
openssh-askpass.x86_64 : A passphrase dialog for OpenSSH and X
Debian / Ubuntu:
$ apt-file -l search ssh-askpass
app-install-data
cruft
git-cola
luckybackup-data
pssh
sdm-terminal
seahorse
ssh-askpass
ssh-askpass-fullscreen
ssh-askpass-gnome
# 2 - Terminal nicht verbunden?
Ich habe dies zunächst verpasst, aber nach weiterem Lesen habe ich diesen Kommentar in der Manpage sshzur SSH_ASKPASSUmgebungsvariablen bemerkt .
Auszug
SSH_ASKPASS If ssh needs a passphrase, it will read the passphrase from the
current terminal if it was run from a terminal. If ssh does not
have a terminal associated with it but DISPLAY and SSH_ASKPASS
are set, it will execute the program specified by SSH_ASKPASS
and open an X11 window to read the passphrase. This is particularly
useful when calling ssh from a .xsession or related script.
(Note that on some machines it may be necessary to redirect the
input from /dev/null to make this work.)
Wenn Sie in dem Kommentar feststellen, dass ssh "kein Terminal zugeordnet hat" und DISPLAY & gesetzt SSH_ASKPASSsind. Dies zu bemerken ist der Schlüssel. Um sshes nutzen SSH_ASKPASSzu können, sshmuss kein Terminal (aka. STDIN& STDOUT) Angeschlossen sein.
Eine Möglichkeit, dies mithilfe des Befehls zu tun setsid. Fühle dich nicht schlecht. Ich habe auch noch nie von diesem Tool gehört. Von der Manpage:
setsid - Führe ein Programm in einer neuen Sitzung aus
Wenn wir also sshals "Programm" ausführen , können setsidwir uns sshvon unserem Terminal lösen, das die in sshder Manpage genannten Kriterien erfüllt . Die anderen Kriterien werden wie folgt festgelegt:
$ echo $DISPLAY; echo $SSH_ASKPASS
:0.0
/usr/libexec/openssh/ssh-askpass
Also, wenn wir das alles zusammenfassen:
$ setsid ssh user@remotehost
Zum Beispiel:
$ setsid ssh user@skinner

Eine Lösung
Wenn Sie es so machen möchten, dass setsides "eingebaut" ist, können Sie Aliase wie folgt erstellen:
$ alias ssh="setsid ssh"
Wenn Sie nun sshaufgefordert werden, Ihr Passwort einzugeben, erscheint die GUI:
$ ssh user@skinner
Verweise