web-dev-qa-db-ja.com

macOSでrootとしてSSH経由でリモートホストに接続すると、SSHキーチェーンがパスフレーズの保存に失敗する

SSHを使用して2台のMacマシン間を接続する場合標準ユーザーとしてパスワードなしの接続は両方のMacで正常に機能します。

しかし、同じことをするたびにrootとしてパスフレーズを入力するように求められます。 PermitRootLogin without-password私の/etc/sshd-config

私のルートがどうしたのですか?なぜこれが起こるのか考えてみてください。

次に:次の方法を使用して、パスフレーズをキーチェーンに追加しようとしました。

$eval "$(ssh-agent)"
$ssh [email protected] && ssh-add -K

キーチェーンウィンドウが表示されますが、何らかの理由で入力できないため、閉じます。そして、それを閉じると、ターミナルはパスフレーズを入力するように促します。そして、私がした後、私は接続を取得します。だから私はタイプした

$ exit

そしてこれを手に入れました:

Could not create keychain item
Identity added: /var/root/.ssh/id_rsa (/var/root/.ssh/id_rsa)

だから、それは私が信じているキーチェーンの問題です(または何らかの理由でこのように機能するはずですか?)この後、ssh-agentを停止するまで実際にパスフレーズを入力する必要がないという面白いことです:((( (((

私はこれを2台のMacで試しましたが、まったく同じ結果が得られました

キーチェーンがrootとしてsshを実行するときにパスフレーズを保存するのに、標準ユーザーとしてsshを実行すると正常に機能する理由を誰かに教えてもらえますか?

3
Drew

ついに私は自分で答えを見つけ、それが私の問題を解決しました。

したがって、/usr/local/bin/ssh-addは絶対に使用しないでください。 OSXに付属するデフォルトの/usr/bin/ssh-addのみを使用します。これはキーチェーンとシームレスに連携するため、私が行ったことは次のとおりです。

$ /usr/bin/ssh-add -k ~/.ssh/id_rsa

シンプル。これで、パスフレーズはキーチェーンに永続的に保存され、Macを再起動するたびにssh-add -kを実行する必要がなくなりました。

11
Drew