GNOMEキーリングデーモンは時々パスワードを要求せず、コマンドラインからパスワードを提供する必要があります。

GNOMEキーリングデーモンは時々パスワードを要求せず、コマンドラインからパスワードを提供する必要があります。

私はCentOS 7.5システムを使用しており、リモートサーバーのSSH用に公開鍵認証を設定しました。通常、最初のサーバーとしてsshを実行すると、鍵のロックを解除するためにパスワードを要求するGNOMEグラフィックプロンプトが表示されるため、GNOMEセッション中に再度要求されません。

しかし、時には端末から直接パスワードを求めるメッセージが表示されます。

Enter passphrase for key '/home/dr01/.ssh/id_rsa': 

サーバーに接続するたびにパスワードを入力する必要があるので面倒です。したがって、この場合はコンピュータを再起動するだけです。


GNOMEキーリングデーモンは/usr/bin/gnome-keyring-daemon --start --components=pkcs11

再起動しても効果はありません。

[dr01@centos7 ~]$ /usr/bin/gnome-keyring-daemon -r 
** Message: Replacing daemon, using directory: /run/user/1001/keyring
GNOME_KEYRING_CONTROL=/run/user/1001/keyring
SSH_AUTH_SOCK=/run/user/1001/keyring/ssh

その後も、コマンドラインで秘密鍵のパスワードの入力を求められます。

私もまた始めました。

/usr/bin/gnome-keyring-daemon -r --unlock

しかし、それは中断されます。これを印刷してくださいstrace

(...)
read(3, "\335{\232\316.\353\335\22\16\277\321\f\326A\334\272\2\342\227\246V`\262\265\300\213@\273>%\303\2"..., 120) = 120
getrusage(RUSAGE_SELF, {ru_utime={0, 2440}, ru_stime={0, 7321}, ...}) = 0
times({tms_utime=0, tms_stime=0, tms_cutime=0, tms_cstime=0}) = 429541253
futex(0x7f0889a5e548, FUTEX_WAKE_PRIVATE, 2147483647) = 0
mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f088aa6a000
mmap(NULL, 16384, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f088aa66000
mlock(0x7f088aa66000, 16384)            = 0
read(0, 

その後は凍結しますread(0,

この問題をどのように解決できますか?

答え1

端末にパスワードプロンプトが表示された場合は、SSH_AUTH_SOCK環境変数がsshそのコンテキストのコマンドに渡されていないことを意味できます。

GNOME Keyring DaemonをSSHエージェント(または実際にはすべてのSSHエージェント)として使用する場合、このSSH_AUTH_SOCK変数はSSHエージェント(あなたの場合はGNOME Keyring Daemon)によって生成されたUNIXソケットを指す必要があります。あるいはsshd、SSH接続を介して作業している場合は、プロキシ接続転送が有効になります。

つまり、ユーザーエクスペリエンスがリセットされている可能性があります。すでに使用しており、保存がsudo許可されているSSH_AUTH_SOCK環境変数のリストにない可能性があります。sudoそれとも別のプログラムのシェルエスケープ機能を実行していますが、そのプログラムがSSH_AUTH_SOCK実行されているシェルに変数を渡しませんか?

関連情報