ssh-addは正確に何をしますか?


15

最近ラップトップを再インストールしましたが、「git clone」が機能していませんでした。常にPermission denied (publickey).エラーが発生していました。

修正はGitHubのSSH問題ページに記載されています。GitHubでのssh-add認証に使用するキーについてSSHに伝えるために使用します。

私の質問は:ボンネットの下で、ssh-add実際に何をするのですか?

私はしばらくの間、SSHの理解を深めることを意味してきましたが、これは開始する良い口実のようです:-)

回答:


21

ssh-add~/.sshディレクトリから)秘密鍵IDを認証エージェント(ssh-agent)に追加します。これにより、sshエージェントが認証を処理し、端末でパスワードを入力しません。


正直に言うと、これはしばらく私を混乱させた。sshクライアントは常に~/.sshディレクトリ内のキーを使用すると考えました。一部のディストリビューションはssh-add自動的に同等の機能を実行しますか?たぶんそれが私が混乱した理由ですか?
15

4
ssh~/.sshディレクトリ内のキーを使用しますが、キーがパスフレーズで保護されている場合、このパスフレーズはある時点で入力する必要があります。ssh-agentおよびを使用する場合ssh-add、このパスフレーズを1回入力します。それ以外の場合は、使用するたびにパスフレーズを入力する必要がありますssh。キーがパスワードで保護されていない場合はssh、パスフレーズを要求されることなく使用できることに注意してください。
ピータージョンアクラム

複数のsshキーが存在する~/.ssh可能性があり、これはより便利なものになる可能性があります。SOおよびbitbucketのドキュメントを参照てください
フランクノック

0

githubのこの記事に基づいて、一部のLinuxディストリビューションでは、すべてを適切にセットアップした後でも、このエラーが表示されることがあります。

Agent admitted failure to sign using the key.
debug1: No more authentication methods to try.
Permission denied (publickey).

そしてssh-add、問題を解決するために実行する必要があります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.