ディレクトリ.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_rsa
or~/.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 を使用するものもあります)。