キーパスワードのグラフィカルプロンプトを使用するようにSSHに指示する

キーパスワードのグラフィカルプロンプトを使用するようにSSHに指示する

パスワードを要求するために端末の標準プロンプトを使用する代わりに、SSHにグラフィックプロンプト(GTKなど)を使用させるにはどうすればよいですか。

設定してみましたがSSH_ASKPASS=/usr/bin/ssh-askpassうまくいかないようです。

問題はopensshドキュメントに次のように記載されているという事実です。

SSHの場合接続端末がありません。DISPLAYとSSH_ASKPASSが設定されている場合は、SSH_ASKPASSで指定されたプログラムを実行し、X11ウィンドウを開き、パスワードを読み込みます。

コマンドラインからsshを起動すると、私の場合、結果は次のようになりますgit push〜する関連付けられた端末があるため、SSH_ASKPASSロジックが無視されるようです。

ここでは、SSHに言及するのではなく、キーペアが存在するがパスワードで保護されてssh-addいるホストへの一般的なSSH呼び出しに言及していることに注意してください。

ベストアンサー1

#1 - パッケージが紛失しましたか?

includeが欠落している可能性がありますssh-askpass。インストールしてみてください。

Fedora/セントOS/RHEL:

$ sudo yum install openssh-askpass

Debian/Ubuntu:

$ sudo apt-get install ssh-askpass-gnome ssh-askpass

不足しているユーティリティを探す

次のコマンドを使用して、欠落しているツールを検索できます。

Fedora/セントOS/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には「関連端末がありません」と表示されます。そして DISPLAYSSH_ASKPASS設定しました。これに気づくことが重要です。したがって、sshこれを使用するには、端末を未接続のままにする必要がSSH_ASKPASSあります(別名「&」)。sshSTDINSTDOUT

1つの方法は、次のコマンドを使用してこれを行うことです。setsid。悲しくないでください。私もこのツールについて聞いたことがありません。マニュアルページから:

setid - 新しいセッションでプログラムを実行する

したがって、「プログラム」として実行すると、sshマニュアルページに記載されている基準に従って端末からsetsid切り離すことができます。その他の標準設定は次のとおりです。sshssh

$ echo $DISPLAY; echo $SSH_ASKPASS
:0.0
/usr/libexec/openssh/ssh-askpass

したがって、これらすべてを総合すると次のようになります。

$ setsid ssh user@remotehost

たとえば、

$ setsid ssh user@skinner

                                       GuiのSSに聞いてください

離れた

setsid「組み込み」にするには、次のエイリアスを作成できます。

$ alias ssh="setsid ssh"

これでsshGUIをポップアップし、パスワードを求めます。

$ ssh user@skinner

引用する

おすすめ記事