ディレクトリ.sshに 30 個の鍵 (15 個の秘密鍵と 15 個の公開鍵) が含まれているとします。
Git のどこで、特定のリモート リポジトリへの接続に使用されているかを確認できますか?
ファイル内の次のエントリ.ssh/configは問題を解決します
host git.assembla.com
user git
identityfile ~/.ssh/whatever
~/.ssh/whatever秘密鍵へのパスはどこにありますか
さらに、ユーザーとホストはからピックアップすることができます
git push git@git.assembla.com:repo_name.git
^__ ^_______________
user host
詳細モード (別名 ) で ssh を実行ssh -v user@hostすると、膨大な量のデバッグ情報が出力されます。これには、ログインしようとしているキーファイルの詳細も含まれます。
debug1: Authentications that can continue: publickey
debug1: Next authentication method: publickey
debug1: Offering RSA public key: /home/user/.ssh/id_rsa
debug1: Server accepts key: pkalg ssh-rsa blen 332
debug1: read PEM private key done: type RSA
debug1: Authentication succeeded (publickey).
これを Git 自身のSSH ヘルプ ページのステップ 4 と組み合わせるとssh -vT git@github.com、答えが得られます。
注:-iスイッチを使用して、コマンドの実行中にどのキーファイルを使用するかを ssh に伝えることもできます。
で指定しない限り.ssh/config、デフォルトの秘密鍵ファイルが使用されます。
デフォルトのファイルは、プロトコルのバージョンに応じて~/.ssh/id_rsaor~/.ssh/id_dsaです。~/.ssh/identity
これは非常にエッジが高いかもしれませんが、実行した後、キーssh -vT git@github.comをチェックしていることが示されまし/root/.sshた。ホームディレクトリをチェックすることを期待していたのですが、ルートとしてログインしていることに気付きました!
gitを使用して接続するだけなので、リモート ホストへの接続に使用するsshキーを使用します。ssh詳細については、~/.ssh/configファイルを参照してください。hostブロックはディレクティブを使用して、使用IdentityFileする秘密鍵を指定します。ssh_config(5)マンページには完全な詳細が含まれています。
リモート サーバーで、sshd_config ファイルを編集し、LogLevel を INFO から VERBOSE に変更して、ssh を再起動します。
これで、ログ ファイルには、各ユーザーの認証に使用されたキーのフィンガープリントが保持されます。
Ubuntu では、これらのファイルは次のとおりです。
/etc/ssh/sshd_config
/var/log/auth.log
ただし、別のディストリビューションでは異なる場合があります。それらの場所をグーグルで検索するだけです(たとえば、 /var/log/secure を使用するものもあります)。