秘密鍵がロック解除されない理由は何ですか?


13

しばらく前にUbuntu 17.10に更新して以来、秘密鍵(たとえば、sshを介してサーバーにアクセスするために使用する秘密鍵)は、ログイン後にプログラムでロック解除されなくなりました。

ここに画像の説明を入力してください

私の理解では、seahorse client最初にキーを入力するときにキーのパスワードを保存するかどうかを尋ねることで、通常はこれに注意する必要があります。

私の最初の推測は、それseahorse-daemonが何らかの理由で実行されていなかったが、それは次のとおりです。

user@Zeus:~$ ps aux | grep seahorse
user    19170  0.0  0.1 432636 26564 ?        Ss   00:07   0:00 seahorse-daemon

私の2番目の推測は、何らかの理由で、タツノオトシゴにある»Passwords-> login«に保存されているすべての関連パスワードを削除する必要があることです。 ここに画像の説明を入力してください

私は、クライアントにもう一度私に尋ねさせてから、それらを再び保存することを望んでいました。しかし、これも助けにはなりませんでした。クライアントは私に尋ねるためにポップアップしません...

それから私は関連している可能性があり、この質問を、見つけましたが、私を助けていない: ロック解除のUbuntu上のすべての秘密鍵を、ログイン時に一度だけパスワードを入力します

他のパスワードの管理が期待どおりに機能するため(nautilus、Chromium、Nextcloudなどのパスワードなど)、問題は何かを処理する必要があると思いssh-agentます...

この問題を解決する方法を教えてくれる人はいますか?GNOMEがパスワードを処理する方法に何か変更はありますか?アップグレードプロセス中に新しいファンシープログラムのインストールに失敗した可能性がありますか?

更新 :秘密鍵を認証エージェントに再度追加するとき:

ssh-add ~/.ssh/id_rsa

ログインしようとすると、キーを1回だけロック解除するよう求められます。その後、キーはプログラムでロック解除されます。ただし、これは次の再起動までしか機能しません。新たに開始した後、キーを再度追加する必要があります...


また、Ubuntu 17.10の使用中にsshキーのロックを解除するためのパスワードの入力を求められるようになりました。受け入れられた答えは私を助けませんでした(再起動するまでしか機能しません)。 これは明らかに重複した質問です。
アレクセイ

タツノオトシゴは、データをパスワードで暗号化します。鍵付きssh、指紋リーダーなどのパスワードなしのログイン...必要になるまで復号化をそのままにしておくと、求められます。問題が始まったときに、sshログインをパスワードからキーに切り替えましたか?
ubfan1

回答:


7

はい、ssh-agentが答えです。パスフレーズを保存するために必要なことは、次のとおりです。

ssh-add ~/.ssh/id_rsa

次に、パスワードを入力して、再度ログインします。


これは、次の再起動までのみ役立ちます。
アレクセイ

@Alexeyはい、次回の再起動までしか機能しないことを確認できます。まだ解決策が見つかりませんでした。
user5950

ssh-agentはログインセッション中に実行され、独自のセキュリティのために終了すると終了します。再起動後も持続し、アカウントのパスワードが危険にさらされた場合、攻撃者は突然あなたのRSA IDにアクセスできるため、アクセスできるすべてのマシンにアクセスできます。これは厄介なセキュリティホールになります。ただし、アカウントのセキュリティを低下させるという代償を払って、いくつかの回避策があります。unix.stackexchange.com/questions/90853/を
darksky

6

スタートアップアプリケーションにSSHキーエージェント(GNOMEキーリング:SSHエージェント)を追加すると、問題が解決しました。

ここに画像の説明を入力してください


3

最初のオプション

sshエージェントを起動します。

ssh-agent

ssh-keyを追加します。

ssh-add ~/.ssh/id_rsa

再起動後も保持するには、ssh-agentを自動起動し、次の行を.bash_profileに追加します。

if [ -z "$SSH_AUTH_SOCK" ] ; then
  eval `ssh-agent -s`
  ssh-add
fi

2番目のオプション

これを.bashrcまたは.zshrcに追加します。

if [ ! -S ~/.ssh/ssh_auth_sock ]; then
  eval `ssh-agent`
  ln -sf "$SSH_AUTH_SOCK" ~/.ssh/ssh_auth_sock
fi
export SSH_AUTH_SOCK=~/.ssh/ssh_auth_sock
ssh-add -l > /dev/null || ssh-add

これは、各再起動後に初めてログインするときにのみパスワードの入力を求めます。実行されている限り、同じssh-agentを再利用し続けます。


おかげで、この回避策は機能しているように見えますが、私はさまよっていますが、そもそも機能しなくなったのはどうしてですか?過去10年間機能していました...回避策に進む前に原因を見つけたいと思います
...-user5950
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.