web-dev-qa-db-ja.com

OpenSSHでKDEでksshaskpassを使用するにはどうすればよいですか?

UbuntuでGNOMEデスクトップを使用している場合、OpenSSHクライアントを使用して別のコンピューター(gnome-terminalから実行)に接続すると、秘密キーのパスフレーズを要求する単一のグラフィックポップアップが表示されます。その後、パスフレーズはSSHエージェントによってキャッシュされるため、入力する必要がなくなりました。

KDEでは、そのようには機能しません。konsoleからsshを起動すると、ssh-agentが実行されていても、パスフレーズのテキストプロンプトが毎回表示されます。

ターミナルからssh-addを実行すると、ターミナルでパスフレーズを入力できます。これはssh-agentに保存され、ssh-addを実行するとパスフレーズプロンプトが表示されなくなります。 KRunnerのグラフィカルコマンドライン(「実行」ダイアログ)をクリックすると、同じ動作のグラフィカルプロンプトが表示されます。問題は、デスクトップにログインするたびにssh-addを実行することを覚えておく必要があることです。

GNOMEの場合と同じように、KDEでsshを動作させるにはどうすればよいですか-パスフレーズが初めて必要になったとき、グラフィカルダイアログをポップアップ表示して、パスフレーズをエージェントに保存します。

Ksshaskpassをインストールしましたが、何も変わりませんでした。

6
Guss

私は内部を知らないので、なぜGNOMEでは機能し、KDEでは機能しないのかを説明するために、解決策を提案することができます。

~/.bashrcで次のような関数を定義します。

ssh() {
    if ! ssh-add -l &>/dev/null; then
        ssh-add </dev/null &>/dev/null
    fi
    command ssh "$@"
}

つまり、エージェントにキーがすでに保存されていない場合(! ssh-add -l)、/dev/nullからの入力で呼び出します。これは、ssh-addに端末がないことを確信させ、パスワードを要求することを強制しますGUIウィンドウ。

SSH_ASKPASS環境変数を設定して、パスワードを要求する別のアプリケーションを指すようにすることができます。

5
enzotib