web-dev-qa-db-ja.com

ssh-addコマンドを使用してもIDがssh-agentに追加されない

私はちょうどubuntu 13.10をインストールし、ssh-agentにIDを追加しようとしていたので、ターミナルを開いてこれを行いました

bjorgvin@buntu:~$ ssh-add -l
The agent has no identities.
bjorgvin@buntu:~$ ssh-add
bjorgvin@buntu:~$ ssh-add -l
The agent has no identities.
bjorgvin@buntu:~$ 

何か案は?

19
bjorgvin

man ssh-addから:

ssh-addは、認証エージェントssh-agent(1)に秘密鍵IDを追加します。引数なしで実行すると、ファイル〜/ .ssh/id_rsa、〜/ .ssh/id_dsa、〜/ .ssh/id_ecdsa、および〜/ .ssh/identityが追加されます。[...]

IDファイルは、ユーザー以外の誰も読み取ってはなりません。 ssh-addは、他のユーザーがアクセスできるIDファイルを無視することに注意してください。

したがって、The agent has no identities.エラーのために、おそらくこれらのファイルがないか、他のユーザーがそれらのファイルにアクセスできる可能性があります。次のコマンドを使用してこれらを確認できます。

ls -l ~/.ssh

また、ssh-addコマンドを実行した後、echo $?を実行して、前のコマンドのエラーステータスを確認します。終了ステータスが0を返した場合、コマンドは正常に実行されました。終了ステータスがゼロ以外の値を返した場合、コマンドの実行は失敗しました。

詳細については、 man ssh-add を参照してください。

25
Radu Rădeanu

上記の考慮事項に加えて、代替シェルを使用している場合は、ssh-agentをロードするように構成する必要がある場合があることがわかりました。たとえば、Zshでは、ssh-agentplugins.zshrcを追加する必要があります。

この方法は、Ubuntu 17.10で最新のZshを使用するとうまく機能します

他の人は、id_ed25519キーで、rsaがプラグインなしで機能していることを発見しました。 ssh-agent~/.zshrcに追加した後、exec "$Shell"を使用してシェルを再起動し、ssh-add ~/.ssh/id_ed25519を実行します

Enter passphrase for ~/.ssh/id_ed25519: 
Identity added: ~/.ssh/id_ed25519 (user@Host)
3
Tohuw