2012-03-09 34 views
10

he estado escaneando la web/SO y leer varios permiso Denieds la petición de ayuda simplemente no puedo encontrar uno que resuelve mi problema de una manera que yo entiendo..ssh/id_rsa falló: permiso denegado

estoy siguiendo estas instrucciones (Getting Started with Python on Heroku/Cedar). Todo fue bien hasta que:

[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 

(No estoy seguro de la seguridad, así que sustituyen la llave con (#))

yo creo que puede ser debido a

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

porque

[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. 

como alguien con poca experiencia en estos asuntos no estoy seguro de cómo deshacer lo que he hecho con seguridad como i kn ya que me estoy entrometiendo con herramientas poderosas. ¿Algún consejo sobre qué está pasando aquí? Avíseme si necesito incluir más información para resolver el problema.

+0

@CIRCLE que no se ve como una buena idea para mí – Phoenix87

Respuesta

34

usted debe poseer los permisos para el directorio .ssh en su propio directorio, pero en su caso, que es propiedad de la raíz. Pruebe

cd ~ 
sudo chown drewverlee .ssh 

y vuelva a intentar la creación de claves y la conexión.

+0

me di cuenta de cómo ser dueño de mi directorio de usuarios de toda medida que leía esto era probable la eficiencia cosa TODO. Gracias por señalarme en la dirección correcta. –

+4

Encontré que ssh-keygen prefiere crear el directorio .ssh. Si el directorio ya existe, emite un mensaje de permiso denegado independientemente de la configuración permisiva de permisos de propiedad. – ddoxey

4

que tenían el mismo problema en CentOS 6. lo resolvió mediante la eliminación de SELinux:

sudo yum remove selinux* 

found the answer here

nota: probablemente no es una buena idea para eliminar ciegamente selinux si usted no sabe lo que está haciendo, aunque

+0

es más fácil desactivar selinux, en lugar de eliminarlo cambiando 'SELINUX = disabled' en'/etc/selinux/config'. Ver [Cenos Docs] (http://www.centos.org/docs/5/html/5.2/Deployment_Guide/sec-sel-enable-disable.html) –

+0

[Stop Desactivación Selinx] (http://stopdisablingselinux.com /) si realmente fue un problema de selinux, debería arreglar los contextos al revisar sus registros de auditoría. –

1

por algunas razones, el archivo id_rsa en la carpeta ~/.ssh estaba en modo de sólo lectura para mi usuario (0400). He cambiado de lectura-escritura que a (0600) con

chmod 0600 id_rsa 

y después de que era obviamente capaz de sobreescribir el archivo. Supongo que estos son los permisos más altos que puedes dar a este archivo, ya que otros no tendrían demasiado sentido.