如何测试特定的SSH密钥(特定于repo的github部署密钥)是否有效?

7fhtutme  于 2023-01-07  发布在  Git
关注(0)|答案(2)|浏览(180)

我已经创建了密钥并将公钥存储在目标存储库的部署密钥设置中。
当我铸造密钥时,我将它们发送到~/.ssh/my-repo~/.ssh/my-repo.pub。在我的~/.ssh/config文件中,我更新了它。

Host *.github.com
  AddKeysToAgent yes
  UseKeychain yes
  IdentityFile ~/.ssh/my-repo

然而,当我尝试通过SSH克隆repo时,系统提示我输入.../.ssh/id_ed25519的密码,这是我的默认SSH密钥。我知道这个可以工作。我想测试一下我专门为my-repo创建的密码。
谢谢你的指点。
最终目标是让远程服务器使用这个部署密钥克隆repo,目前它遇到了Permission denied(公钥)问题。
更新:
使用以下命令时,
ssh -i ~/.ssh/my-repo git clone git@github.com:user/my-repo.git
我得到了暂停,
ssh: connect to host git port 22: Operation timed out

qpgpyjmq

qpgpyjmq1#

ssh: connect to host git port 22: Operation timed out
                ^^^^^^^^

ssh -i ~/.ssh/my-repo git clone git@github.com:user/my-repo.git不会在ssh上运行git命令,它会尝试ssh到主机名git,因为该主机不存在,所以超时。
而是按照Testing your SSH connection中的说明进行操作。

ssh -T git@github.com

您的ssh配置Host *.github.comgithub.com不匹配;它将匹配something.github.com。请尝试Host github.com
此外,AddKeysToKeychain和Usekeychain可能不应限制为特定主机。

AddKeysToAgent yes
UseKeychain yes

Host github.com
  IdentityFile ~/.ssh/my-repo
31moq8wy

31moq8wy2#

我建议使用不同于www.example.com的主机条目github.com,这正是为了明确您正在使用自定义SSH URL的事实:

Host gh
  Hostname github.com
  User git
  IdentityFile ~/.ssh/my-repo

那么你的测试就变成了

ssh -Tv gh

你的网址变成:

git clone gh:me/myRepo

不再有git@...,因为配置文件包含User git

相关问题