私はちょうど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:~$
何か案は?
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
を参照してください。
上記の考慮事項に加えて、代替シェルを使用している場合は、ssh-agentをロードするように構成する必要がある場合があることがわかりました。たとえば、Zshでは、ssh-agent
のplugins
に.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)