UbuntuでGNOMEデスクトップを使用している場合、OpenSSHクライアントを使用して別のコンピューター(gnome-terminalから実行)に接続すると、秘密キーのパスフレーズを要求する単一のグラフィックポップアップが表示されます。その後、パスフレーズはSSHエージェントによってキャッシュされるため、入力する必要がなくなりました。
KDEでは、そのようには機能しません。konsoleからsshを起動すると、ssh-agentが実行されていても、パスフレーズのテキストプロンプトが毎回表示されます。
ターミナルからssh-addを実行すると、ターミナルでパスフレーズを入力できます。これはssh-agentに保存され、ssh-addを実行するとパスフレーズプロンプトが表示されなくなります。 KRunnerのグラフィカルコマンドライン(「実行」ダイアログ)をクリックすると、同じ動作のグラフィカルプロンプトが表示されます。問題は、デスクトップにログインするたびにssh-addを実行することを覚えておく必要があることです。
GNOMEの場合と同じように、KDEでsshを動作させるにはどうすればよいですか-パスフレーズが初めて必要になったとき、グラフィカルダイアログをポップアップ表示して、パスフレーズをエージェントに保存します。
Ksshaskpassをインストールしましたが、何も変わりませんでした。
私は内部を知らないので、なぜ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
環境変数を設定して、パスワードを要求する別のアプリケーションを指すようにすることができます。