跳到主要内容

Git SSH密钥

了解如何配置和解决SSH密钥问题 | 解决Permission Denied(publickey)问题。

SSH密钥用于在不涉及密码的情况下识别受信任的计算机。在Buddy中,您可以使用现有密钥或生成新密钥对。

生成Git SSH密钥

  1. 单击右上角的头像显示下拉菜单并点击SSH密钥进入页面

    Git SSH密钥

  2. 根据所需如上图三个蓝色链接按钮,按指示复制粘贴密钥、上传密钥或生成新密钥。

手动生成Git SSH密钥

  1. 启动您的控制台/终端并输入:

    ssh-keygen -t rsa -b 4096 -C "your_email@address"
  2. 当系统提示您选择保存密钥的默认文件时按回车键

  3. 输入密码(passphrase)以获得更高的安全性(选填)

  4. 查看密钥指纹(id)并关闭控制台

添加现有SSH密钥

  • 点击粘贴新的SSH密钥...并复制您现有的密钥粘贴至密钥框中
  • 点击上传新的SSH密钥...并选择上传您现有的密钥文件至密钥上传框中

解决SSH密钥问题

信息

密钥和配置文件的默认路径是~/.ssh。密钥的默认名称是 id_rsa。如果您愿意,您可以命名其他名称,但必须在配置中正确对应。

不能克隆或推送/拉取存储仓

如果您无法从存储仓克隆或推送/拉取,请确保您已根据以下列表配置所有内容:

  1. 文件 ~/.ssh/config 应该包含一个我们服务的条目

     Host app.buddy.works
    HostName app.buddy.works
    User buddy
    IdentityFile ~/.ssh/id_rsa
  2. 您项目的SSH URL如下所示(HTTP URL将工作):

     buddy@app.buddy.works:WORKSPACE/PROJECT
  3. 密钥已添加到ssh-agent

     ssh-add ~/.ssh/id_rsa
  4. 远程地址已在存储仓中正确配置。本地存储仓文件夹包含一个隐藏的 .git 目录和 config 文件。确保文件包含以下条目:

     [remote "origin"]
    url = buddy@app.buddy.works:WORKSPACE/PROJECT
    fetch = +refs/heads/*:refs/remotes/origin/*

权限拒绝错误

如果您收到以下错误,则表示添加到Buddy的密钥与您计算机上的密钥不匹配:

Permission denied (publickey,keyboard-interactive).
fatal: The remote end hung up unexpectedly

您可以这样操作:

  1. 转到您的~/.ssh文件夹并仔细检查该文件夹中的公钥是否与Buddy中的相同。

  2. 运行这个命令,看看 Buddy 是否可以正确地使用密钥进行身份验证:ssh buddy@app.buddy.works 如果一切正常,您将收到这种类型的响应:

     Hi there! You are good to go. Just start pushing and pulling :)
    Connection to buddy.works closed.
信息

如果再次验证失败,则意味着密钥仍然不匹配。如果您100%确定密钥相同并且一切正常,请运行 ssh -vvv buddy@app.buddy.works 并将输出发送到 support@buddy.works - 我们会尽力协助您完成配置。