GIT和SSH,使用哪个密钥?
说您的.ssh目录包含30个密钥(15个私人和15个公共)
在GIT哪个地方,可以检查哪一个用于连接到给定的远程回购?
.ssh/config文件中的以下条目解决了该问题
host git.assembla.com user git identityfile ~/.ssh/whatever
哪里~/.ssh/whatever是你的私钥的path
另外,用户和主机可以从中提取
git push git@git.assembla.com:repo_name.git ^__ ^_______________ user host
在详细模式下执行ssh(又名ssh -v user@host ,将会打印大量的debugging信息,其中还包含有关正在尝试login的密钥文件的详细信息。
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使用哪个密钥文件。
由于git只是使用ssh来连接,它将使用ssh将用来连接到远程主机的任何密钥。 有关详细信息,请参阅~/.ssh/config文件; host块使用IdentityFile指令来指定要使用的私钥。 ssh_config(5)页包含完整的详细信息。
除非在.ssh/config指定,否则将使用默认的私钥文件。
默认文件是~/.ssh/id_rsa或~/.ssh/id_dsa或~/.ssh/identity具体取决于协议版本。
在远程服务器上,编辑sshd_config文件并将LogLevel从INFO更改为VERBOSE,然后重新启动ssh。
现在您的日志文件将保存用于validation每个用户的密钥的指纹。
在Ubuntu上,这些文件是:
/etc/ssh/sshd_config /var/log/auth.log
但是在另一个发行版中可能会有所不同。 只是谷歌的位置(一些使用/ var /日志/安全例如)。