# 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 ssh
manual mengenai SSH_ASKPASS
variabel 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_ASKPASS
diatur. Memperhatikan ini adalah kuncinya. Jadi untuk bisa ssh
menggunakan SSH_ASKPASS
kita harus ssh
tidak 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 ssh
sebagai "program" untuk setsid
kita dapat melepaskan ssh
dari terminal kita memenuhi kriteria yang disebutkan dalam ssh
halaman 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, ssh
Anda akan mendapatkan GUI muncul meminta kata sandi Anda:
$ ssh user@skinner
Referensi