# 1 - Paket tidak ada?
Anda mungkin melewatkan paket yang berisi ssh-askpass. Coba pasang.
Fedora / CentOS / RHEL:
$ sudo yum install openssh-askpass
Debian / Ubuntu:
$ sudo apt-get install ssh-askpass-gnome ssh-askpass
Menemukan utilitas yang hilang
Anda dapat mencari alat yang hilang menggunakan perintah ini:
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 terputus?
Saya awalnya merindukan ini tetapi setelah membaca lebih lanjut saya melihat komentar ini di halaman sshmanual mengenai SSH_ASKPASSvariabel lingkungan.
kutipan
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.)
Jika Anda perhatikan di komentar, itu menyatakan bahwa ssh "tidak memiliki terminal yang terkait" DAN DISPLAY & SSH_ASKPASSdiatur. Memperhatikan ini adalah kuncinya. Jadi untuk bisa sshmenggunakan SSH_ASKPASSkita harus sshtidak memiliki terminal (alias. STDIN& STDOUT) Yang melekat padanya.
Salah satu cara untuk melakukan ini dengan memanfaatkan perintah setsid. Jangan merasa buruk. Saya juga tidak pernah mendengar alat ini. Dari halaman manual:
setsid - jalankan program dalam sesi baru
Jadi jika kita menjalankan sshsebagai "program" untuk setsidkita dapat melepaskan sshdari terminal kita memenuhi kriteria yang disebutkan dalam sshhalaman manual. Kriteria lainnya ditetapkan sebagai berikut:
$ echo $DISPLAY; echo $SSH_ASKPASS
:0.0
/usr/libexec/openssh/ssh-askpass
Jadi jika kita menyatukan ini semua:
$ setsid ssh user@remotehost
Sebagai contoh:
$ setsid ssh user@skinner

Sebuah solusi
Jika Anda ingin membuatnya jadi setsid"bawaan" Anda dapat membuat alias seperti:
$ alias ssh="setsid ssh"
Sekarang ketika Anda, sshAnda akan mendapatkan GUI muncul meminta kata sandi Anda:
$ ssh user@skinner
Referensi