.ssh
ディレクトリに30個のキー(15個のプライベートキーと15個のパブリックキー)が含まれているとします。
Gitのどこで、特定のリモートリポジトリへの接続に使用されているものを確認できますか?
.ssh
ディレクトリに30個のキー(15個のプライベートキーと15個のパブリックキー)が含まれているとします。
Gitのどこで、特定のリモートリポジトリへの接続に使用されているものを確認できますか?
回答:
冗長モード(別名)ssh -v user@host
でsshを実行すると、大量のデバッグ情報が出力されます。この情報には、ログインしようとしているキーファイルの詳細も含まれています。
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の自身のステップ4で、これを組み合わせると今SSHのヘルプページ、ssh -vT git@github.com
あなたに答えを与えることができます。
注:-i
スイッチを使用して、コマンドの実行中にsshに使用するキーファイルを指示することもできます。
ssh -vv user@host 2> >(grep Offering)
が簡単になります。最後のファイルは公開鍵である必要があります。例:debug1: Offering RSA public key: /Users/macbookpro/.ssh/id_rsa
github
と同じものではありません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/config
いない限り、デフォルトの秘密鍵ファイルが使用されます。
デフォルトのファイルがある~/.ssh/id_rsa
か、~/.ssh/id_dsa
または~/.ssh/identity
プロトコルのバージョンによって異なります。
私の好みに最も実用的だと思います:
GIT_SSH_COMMAND='ssh -v' git …
もちろん、状況によっては、現在のSHELLの環境にエクスポートするだけで、毎回手動で追加する必要がない場合があります。次に、次のようになります。
export GIT_SSH_COMMAND='ssh -v'
git …
—man git
示唆されているように、SSHを使用したGitの操作に影響を与える環境変数がいくつかあります。によると、オプションをman ssh
展開するときにデバッグ情報を取得でき-v
ます(だけでなく、詳細については、マニュアルを確認してください)。
どのキーが使用されていますか?
出力では、次のようなsmthが表示されます…
debug1: Offering public key: …
…これがあなたのqnへの答えです。
set GIT_SSH_COMMAND=ssh -v
。これは、ssh-config Inlcude-PathがWindowsで次のようになる必要があることを理解するのに役立ちました:Include /C/Users/YourUserName.ssh/config
sshを作成し、したがってgitが構成ファイルを使用し、たとえばHOST *
エントリを使用してgit / sshが使用するIDファイルを指定します。
git
はssh
接続に使用するだけなのでssh
、リモートホストへの接続に使用するキーを使用します。詳細については、~/.ssh/config
ファイルを参照してください。host
ブロックは使用していますIdentityFile
使用する秘密鍵を指定するには、ディレクティブを。ssh_config(5)
manページには、完全な詳細が含まれています。
/etc/ssh_config
コメントされたエントリでいっぱいのファイルのように見えるファイルが見つかりました
~/.ssh/config
自分で作成できます。
これはスーパーエッジかもしれませんが、実行ssh -vT git@github.com
した後/root/.ssh
、キーをチェックしていることがわかり、ホームディレクトリをチェックすることを期待していたので、rootとしてログインしていることに気付きました。
ssh
尋問方法が正しい解決策です。ありがとう。