.ssh/id_rsa не удалось: разрешение отклонено

Я просматриваю web/SO и читаю несколько разрешений на отказ в помощи. Я просто не могу найти тот, который решает мою проблему так, как я понимаю.

Я следую этим инструкциям (Начало работы с Python на Heroku/Cedar). Все прошло хорошо, пока:

[email protected]:~/helloflask$ source venv/bin/activate
(venv)[email protected]:~/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

потому что

[email protected]:~$ 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.

Как человек с небольшим опытом в этих вопросах, я не уверен, как отменить то, что я сделал безопасно, поскольку я знаю, что я вмешиваюсь в мощные инструменты. Любой совет о том, что происходит здесь? Дайте мне знать, если мне нужно включить больше информации для решения проблемы.

Ответ 1

У вас должны быть права доступа к директории .ssh в вашем собственном каталоге, но в вашем случае он принадлежит root. Попробуйте

cd ~
sudo chown drewverlee .ssh

а затем повторите создание ключей и подключение.

Ответ 2

У меня была та же проблема на CentOS 6. Решила его, удалив selinux:

sudo yum remove selinux*

нашел ответ здесь

примечание:, вероятно, не очень хорошая идея, чтобы слепо удалить selinux, если вы не знаете, что делаете, хотя

Ответ 3

По некоторым причинам файл id_rsa в папке ~/.ssh был доступен только для чтения для моего пользователя (0400). Я изменил это на чтение-запись (0600) с помощью

chmod 0600 id_rsa

и после того, как я, очевидно, смог перезаписать файл. Я думаю, это самые высокие разрешения, которые вы можете дать этому файлу, так как другие не будут иметь особого смысла.