Bre*_*sen 7 git github ssh-keys ed25519
我想为我的 GitHub 帐户生成 SSH 密钥。按照这个指南,我跑了ssh-keygen -t ed25519 -C "my@email.com"。我给了它文件名github_main并输入了密码。一切都很好。
运行ssh-add ~/.ssh/github_main出现了问题,但我通过使用稍微不同的路径运行命令来解决该问题。它回来了Identity added: C:/Users/brent/.ssh/github_main (my@email.com),所以我认为一切正常。
然后我测试了与 的连接ssh -T git@github.com。它说我已成功连接,但 GitHub 不提供 shell 访问,在我看来这似乎有效。
我将 SSH 令牌添加到我的 GitHub 帐户,也没有出现任何问题。然后,我尝试通过 SSH 克隆我的一个存储库,但奇怪的是不起作用;它给出了以下结果:
Cloning into 'my-repo'...
git@github.com: Permission denied (publickey).
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
Run Code Online (Sandbox Code Playgroud)
我尝试使用 HTTPS 克隆相同的存储库,效果很好。经过大约一个小时的谷歌搜索,我多次读到文件名对结果没有影响,但我决定尝试将文件重命名为原始名称。我将公钥重命名为id_ed25519.pub,将私钥重命名为id_ed25519。这次,当我尝试使用 SSH 克隆存储库时,它要求输入密码并克隆存储库。这让我很困惑,特别是因为到目前为止我读到的所有内容都告诉我文件名并不重要。
尽管它适用于名为 的文件id_ed25519,但我仍然想重命名这些文件,因为该文件名没有告诉我有关密钥的任何信息,并且我只能像这样加密一个密钥。
jth*_*ill 10
您没有使用所有默认名称,这意味着您需要告诉 ssh 您把东西放在哪里。为了避免每次重复,请在其配置中执行此操作,它会在~/.ssh/config. 第一行:addkeystoagent yes。第二行:host github。第三行:hostname github.com. 第四行:identityfile path/to/your/privateidentityfile. 该host行开始一个块,您现在可以说git clone git@github:yourghid/yourrepo这就足够了。您甚至可以user git为主机添加一行,然后git clone github:yourghid/yourrepo. 拼写取决于你,如果我做了很多,我会拼写像gh, host gh user git hostname github.com identityfile ~/.ssh/id_gh, 这样的东西,然后就git remote add linux gh:torvalds/linux可以了。
比如说man 5 ssh_config,man 第 5 节是文件格式。Bash 补全知道这些东西,比如说man 5,按几次 Tab 键告诉它没有真正向我显示您拥有的文档的所有文件格式。
| 归档时间: |
|
| 查看次数: |
3295 次 |
| 最近记录: |