#1-パッケージが見つかりませんか?
おそらくを含むパッケージが見つかりませんssh-askpass
。インストールしてみてください。
Fedora / CentOS / RHEL:
$ sudo yum install openssh-askpass
Debian / Ubuntu:
$ sudo apt-get install ssh-askpass-gnome ssh-askpass
不足しているユーティリティを見つける
次のコマンドを使用して、不足しているツールを検索できます。
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-切断された端末?
最初はこれを見逃していましたが、さらに読んだ後ssh
、SSH_ASKPASS
環境変数に関するマニュアルページでこのコメントに気付きました。
抜粋
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.)
コメントで気付いた場合、sshには「端末が関連付けられていません」と DISPLAY
&SSH_ASKPASS
が設定されていることが示されます。これが重要です。そのためssh
、使用SSH_ASKPASS
するためssh
には、ターミナル(aka。STDIN
&STDOUT
)を接続しないようにする必要があります。
コマンドを使用してこれを行う1つの方法setsid
。気分を悪くしないでください。私もこのツールについて聞いたことがありません。manページから:
setsid-新しいセッションでプログラムを実行する
したがってssh
、「プログラム」として実行する場合は、のmanページに記載されている条件を満たす端末からsetsid
切り離すことができます。他の基準は次のように設定されます。ssh
ssh
$ echo $DISPLAY; echo $SSH_ASKPASS
:0.0
/usr/libexec/openssh/ssh-askpass
これをすべてまとめると:
$ setsid ssh user@remotehost
例えば:
$ setsid ssh user@skinner

解決策
setsid
が「ビルトイン」になるようにしたい場合は、次のようなエイリアスを作成できます。
$ alias ssh="setsid ssh"
これssh
で、パスワードを要求するGUIがポップアップ表示されます。
$ ssh user@skinner
参照資料