Ошибка .ssh / id_rsa: разрешение запрещено - PullRequest
14 голосов
/ 09 марта 2012

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

Я следую этим инструкциям ( Начало работы с Python на 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 ]

41 голосов
/ 09 марта 2012

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

cd ~
sudo chown drewverlee .ssh

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

4 голосов
/ 22 мая 2012

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

sudo yum remove selinux*

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

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

2 голосов
/ 22 июля 2017

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

chmod 0600 id_rsa

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

1 голос
/ 28 сентября 2018

Мой пользователь (ubuntu - вы можете узнать, набрав whoami) владел папкой ~ / .ssh, но он все еще не позволял мне использовать символическую ссылку (Файл: ~ / .ssh / my_file_rsa) из ssh-keygen.Поэтому я просто скопировал в папку ~ / .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
0 голосов
/ 27 декабря 2018

Так как ни один из ответов выше не работал для меня. Я отправлю свой ответ:

  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/)

Почему это работает:

  • ssh, созданный командой sudo, - это ssh для пользователя root, а не для пользователя. Это означает, что ssh-add ~/.ssh/id_rsa не сможет добавить пользователя root ssh.
  • когда вы пытаетесь сгенерировать нового пользователя ssh, вы не можете успешно заменить старого, потому что он был создан для root.

(Пожалуйста, попросите меня исправить мой ответ, если что-то не так. Thx:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...