.ssh / id_rsa失败:权限被拒绝

时间:2012-03-09 15:00:34

标签: git heroku ssh github ssh-keys

我一直在扫描网页/ SO并阅读几个许可被拒绝请求帮助我只是找不到以我理解的方式解决我的问题。

我正在遵循这些说明(Getting Started with Python on Heroku/Cedar)。一切顺利,直到:

drewverlee@ubuntu:~/helloflask$ source venv/bin/activate
(venv)drewverlee@ubuntu:~/helloflask$ git push heroku master

The authenticity of host 'heroku.com (50.19.85.132)' can't be established.
RSA key fingerprint is ##:##:##:##:##:##:##:##:##:##:##:## (I replaced with #)
Are you sure you want to continue connecting (yes/no)? yes
Failed to add the host to the list of known hosts (/home/drewverlee/.ssh/known_hosts).
Permission denied (publickey).
fatal: The remote end hung up unexpectedly

(不确定安全性所以我用(#)替换了键)

我认为可能是因为

drwx------  2 root       root        1024 2012-03-08 21:26 .ssh

,因为

drewverlee@ubuntu:~$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/drewverlee/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
open /home/drewverlee/.ssh/id_rsa failed: Permission denied.
Saving the key failed: /home/drewverlee/.ssh/id_rsa.

作为对这些事情缺乏经验的人,我不知道如何安全地撤消我所做的事情,因为我知道我正在使用强大的工具。关于最新情况的任何建议? 如果我需要包含更多信息来解决问题,请告诉我。

5 个答案:

答案 0 :(得分:41)

您应该拥有自己目录中.ssh目录的权限,但在您的情况下,它由root拥有。尝试

cd ~
sudo chown drewverlee .ssh

然后重试创建密钥并进行连接。

答案 1 :(得分:4)

我在CentOS 6上遇到了同样的问题。通过删除selinux解决了这个问题:

sudo yum remove selinux*

found the answer here

注意:如果您不知道自己在做什么,盲目删除selinux可能不是一个好主意

答案 2 :(得分:2)

由于某些原因,〜/ .ssh文件夹中的id_rsa文件为我的用户(0400)处于只读模式。我用

将其改为读写(0600)
chmod 0600 id_rsa

之后我显然能够覆盖该文件。我想这些是你可以给这个文件的最高权限,因为其他人没有太多意义。

答案 3 :(得分:1)

我的用户(ubuntu-您可以找到键入whoami)确实拥有〜/ .ssh文件夹,但仍然不能让我使用ssh-keygen的符号链接(文件:〜/ .ssh / my_file_rsa)。因此,我只是将CD插入〜/ .ssh文件夹,而没有为rsa文件名添加外部路径。

whoami
ls -Al ~

cd ~/.ssh
ssh-keygen
Enter file in which to save the key (/home/ubuntu/.ssh/id_rsa):  my_file_rsa

答案 4 :(得分:0)

因为以上所有答案对我都不起作用。我将发布答案:

  1. 删除旧的ssh
    sudo rm -rf ~/.ssh/id_rsa sudo rm -rf ~/.ssh/id_rsa.pub
  2. 生成新的ssh并使用它(请参阅https://help.github.com/enterprise/2.15/user/articles/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent/

为什么起作用:

    sudo命令创建的
  • ssh是root用户的ssh,而不是用户的ssh。这意味着ssh-add ~/.ssh/id_rsa将无法向用户添加root ssh。
  • 当您尝试生成新用户ssh时,您无法成功替换旧的ssh,因为它是为root用户生成的。

(如果有什么问题,请让我解决我的问题。谢谢:)