权限被拒绝(公钥,密码)

时间:2018-06-01 12:47:45

标签: git ssh visual-studio-code bluehost

我使用VS Code作为我的编辑器,并使用BlueHost来托管一系列域名和网站。我已经在BlueHost上安装了git并在那里创建了一个存储库。我已经在本地克隆了该存储库。

在命令行上使用git push origin master推送提交时,系统会提示我输入BlueHost帐户的密码,一切都按预期运行。但是,当使用VS Code上的“源代码管理”选项卡中的“推送”菜单选项时,根本不会提示我并收到错误消息:

Permission denied (publickey,password).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights and the repository exists.

我阅读了大量类似提出的问题并尝试了许多潜在的解决方案,包括在BlueHost上生成SSH密钥并将该密钥放在我的.ssh文件夹中(使用公钥和私钥尝试)并使用生成密钥ssh-keygen并将公钥导入BlueHost,但没有取得任何进展。我开始认为这个问题可能是我使用的特定服务组合的一个极端情况。

有什么想法吗?

2 个答案:

答案 0 :(得分:0)

您的问题似乎是您已经生成了SSH密钥,但没有告诉您的计算机使用它。要验证这一点,请尝试使用ssh -v user@hostname(详细模式),它将显示计算机尝试向远程主机提供的密钥。

如果这确实是问题,那么解决起来很简单。您需要将SSH密钥添加到SSH代理,以便您的计算机知道尝试使用它。我不知道你正在使用什么操作系统,但是例如,在Mac OS上,你会ssh-add path/to/key-file。 GitHub在https://help.github.com/articles/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent/有一套很好的指令,你应该遵循这些指令(这些指令应该适用于任何Git遥控器,而不仅仅是GitHub)。 VS Code可能在其Git模块中具有某种密钥管理UI;我从来没用过它,所以我不知道。

答案 1 :(得分:0)

确保您的SSH配置正确(对于debian / ubuntu,在/ etc / ssh / sshd_config中):

  • 只有一个身份验证方法被激活,其他身份验证方法被声明(未注释)并设置为“ no”:PubkeyAuthentication,RSA(如果存在)和PasswordAuthentication
    • 最终检查是否需要PermitRootLogin或UseLogin
    • 如果需要,请检查是否未注释带有authorized_keys的行

然后使用旧的/etc/init.d/ssh restart重新启动SSHD(是的,是的,有更好的方法,但这仍然可以正常工作,并且做对了:-))