解決策 1:
複数のクライアントから同じ SSH キーを使用できる必要があります。私はネットワークごとに異なる SSH キーを持っており、それらは実際には暗号化された USB ドライブに保存されており、複数の異なるコンピューターから問題なく使用しています。
SSH はファイルのアクセス許可に関して非常にうるさいので、最初に /home/{user}
からのすべてのアクセス許可を確認します。 id_rsa
までずっと ファイル自体。
SSH はグループまたはワールドの書き込み権限をあまり気にしないので、必ず chmod go-w
してください。 ホームディレクトリと ~/.ssh
初心者向けのディレクトリ。また、それらがあなたのユーザー chown ${USER}:${USER}
によって所有されていることも確認します .
SSH キー自体については chmod 600
それら...
必要に応じて、別の SSH の質問への回答に、SSH キーの管理方法に関する追加情報があります。
解決策 2:
Github 側で許可が拒否された場合は、コピーされた SSH キー ファイルではなく、システムのデフォルトが取得されている可能性があります。これを回避する簡単な方法は、~/.ssh/config
を素晴らしいものにすることです。 ファイルに以下を入れてください:
Host github.com
Hostname github.com
User git
IdentityFile ~/.ssh/yourkeyfile
これにより、SSH クライアントはそのキーを github.com のみに使用するようになります。
これがお役に立てば幸いです。
解決策 3:
これが古いことは承知していますが、public もコピーする必要があることを指摘しておきます。 2 番目のクライアントのキー
(または ssh-keygen -y -f ~/.ssh/id_rsa_..> ~/.ssh/id_rsa...pub で再計算)
[1] から:
<ブロック引用>-
公開鍵認証方式:"publickey"
必須の認証「メソッド名」は「publickey」のみです
認証。すべての実装は、このメソッドをサポートする必要があります。
ただし、すべてのユーザーが公開鍵を持つ必要があるわけではなく、ほとんどのユーザーはローカル
ポリシーは、すべてに対して公開鍵認証を要求する可能性は低い
この方法では、秘密鍵の所有は次のように機能します。
認証。 この方法は、作成した署名を送信することで機能します
ユーザーの秘密鍵を使用。 サーバーは、キーが
ユーザーの有効なオーセンティケーターであり、
署名は有効です。両方が成立する場合、認証リクエストは
受け入れられた;それ以外の場合は、拒否する必要があります。サーバーはMAYであることに注意してください
認証が成功した後、追加の認証を要求します。
ssh クライアントは、公開鍵 (上記の太字で参照されている署名) をサーバーに送信することによって認証を開始します。公開鍵が承認済みの鍵である場合、サーバーはランダムなセッション ID をクライアントに送り返します。次に、クライアントはそのセッション ID を秘密鍵でエンコードし、それをサーバーに送り返します。サーバーは公開鍵を使用してそのセッション ID をデコードし、それが元のセッション ID と一致する場合、クライアントを認証します。
[1] [http://www.openssh.org/txt/rfc4252.txt][1]