次のRSAキー(パスワードを含む)を作成しました。
ssh-keygen -t rsa -f rsa_foo
通常の方法でキーを追加すると、ssh-add
パスワードの入力を求められます。
$ ssh-add rsa_foo
Enter passphrase for rsa_foo: 12345
ただし、FIFOを介してキーをロードすると、もはや次のように求められません。
$ mkfifo -m=600 fifo
$ cat rsa_foo >fifo | ssh-add fifo
それは私に次のエラーを与えます:
オペレーティングシステム:
ssh_askpass: exec(/usr/libexec/ssh-askpass): そのファイルやディレクトリはありません。
Linux(Ubuntu):
ssh_askpass: exec(/usr/bin/ssh-askpass): そのファイルやディレクトリはありません。
この方法は、RSA 鍵ファイルにパスワードがない場合に機能します。
ssh-add
正常にパスワードを要求できるようにする(または何らかの方法でパスワードを渡すことができるように)、上記のエラーを修正するにはどうすればよいですか?
私の目標は、FIFOを使用してこのRSAキーをロードすることです。
ベストアンサー1
パスワードの入力を求められます。
$ ls -l fifo
prw------- 1 glopes users 0 Out 11 03:59 fifo
$ ssh-add fifo
Enter passphrase for fifo:
次に、他の端末からキーをロードします。
$ cat id_rsa > fifo
または、次の1行を試してください。
$ (cat id_rsa > fifo &); ssh-add fifo
$SSH_ASKPASS
マニュアルに記載されているように、端末からを呼び出す必要はありません。
ssh-add にパスワードが必要な場合、端末で実行すると、現在の端末からパスワードが読み込まれます。 ssh-addに接続された端末がないが設定されている場合、指定され
DISPLAY
たSSH_ASKPASS
プログラム(デフォルトは「ssh-askpass)」を実行してSSH_ASKPASS
X11ウィンドウを開き、パスワードを読み込みます。
ssh-addにキーを渡す前にキーを明示的に復号化することで、いつでもこの問題を解決できます。