
Estoy aprendiendo Hadoop e intentando crear SSH sin contraseña siguiendo el procedimiento definido en el Libro:Hadoop: la guía definitiva
Configurando SSH
El modo pseudodistribuido es solo un caso especial de modo totalmente distribuido en el que el (único) host es localhost, por lo que debemos asegurarnos de que podemos utilizar SSH en localhost e iniciar sesión sin tener que ingresar una contraseña.
Primero, asegúrese de que SSH esté instalado y un servidor está funcionando(No estoy seguro de lo que quieren decir). En Ubuntu, por ejemplo, esto se consigue con:
sudo apt-get install ssh
Luego, para habilitar el inicio de sesión sin contraseña, genere una nueva clave SSH con una frase de contraseña vacía:
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
Es posible que también necesites ejecutarssh-añadirsi está ejecutando ssh-agent. Pruebe con qué puede conectarse:
ssh localhost
Si tiene éxito, no debería tener que escribir una contraseña.
Todo parece funcionar bien, pero todavía solicita la contraseña. Estoy dando mi contraseña de inicio de sesión, que también uso para el acceso raíz. pero no funciona en absoluto. Por favor recomiende.
Añadiendo más información. Eliminé la clave anterior y agregué una nueva.
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
Mis permisos de archivos después de esto fueron
-rw-rw-r-- 1 incredible incredible 403 मई 24 17:16 authorized_keys
-rw------- 1 incredible incredible 1679 मई 23 23:08 id_rsa
-rw-r--r-- 1 incredible incredible 403 मई 23 23:08 id_rsa.pub
-rw-r--r-- 1 incredible incredible 444 मई 24 17:12 known_hosts
después de cambiar el permiso de Authorized_key es
-rw------- 1 incredible incredible 403 मई 24 17:16 authorized_keys
-rw------- 1 incredible incredible 1679 मई 23 23:08 id_rsa
-rw-r--r-- 1 incredible incredible 403 मई 23 23:08 id_rsa.pub
-rw-r--r-- 1 incredible incredible 444 मई 24 17:12 known_hosts
Pero incluso después de esto, me pide la contraseña cuando lo hago.ssh localhost
Agregar más salida de información ssh -v localhost
solicitada por @heemayl
incredible@incredible:~$ ssh -v localhost OpenSSH_6.7p1 Ubuntu-5ubuntu1, OpenSSL 1.0.1f 6 Jan 2014 debug1: Reading configuration data /etc/ssh/ssh_config debug1: /etc/ssh/ssh_config line 19: Applying options for * debug1: Connecting to localhost [127.0.0.1] port 22. debug1: Connection established. debug1: identity file /home/incredible/.ssh/id_rsa type 1 debug1: key_load_public: No such file or directory debug1: identity file /home/incredible/.ssh/id_rsa-cert type -1 debug1: key_load_public: No such file or directory debug1: identity file /home/incredible/.ssh/id_dsa type -1 debug1: key_load_public: No such file or directory debug1: identity file /home/incredible/.ssh/id_dsa-cert type -1 debug1: key_load_public: No such file or directory debug1: identity file /home/incredible/.ssh/id_ecdsa type -1 debug1: key_load_public: No such file or directory debug1: identity file /home/incredible/.ssh/id_ecdsa-cert type -1 debug1: key_load_public: No such file or directory debug1: identity file /home/incredible/.ssh/id_ed25519 type -1 debug1: key_load_public: No such file or directory debug1: identity file /home/incredible/.ssh/id_ed25519-cert type -1 debug1: Enabling compatibility mode for protocol 2.0 debug1: Local version string SSH-2.0-OpenSSH_6.7p1 Ubuntu-5ubuntu1 debug1: Remote protocol version 2.0, remote software version OpenSSH_6.7p1 Ubuntu-5ubuntu1 debug1: match: OpenSSH_6.7p1 Ubuntu-5ubuntu1 pat OpenSSH* compat 0x04000000 debug1: SSH2_MSG_KEXINIT sent debug1: SSH2_MSG_KEXINIT received debug1: kex: server->client aes128-ctr [email protected] none debug1: kex: client->server aes128-ctr [email protected] none debug1: sending SSH2_MSG_KEX_ECDH_INIT debug1: expecting SSH2_MSG_KEX_ECDH_REPLY debug1: Server host key: ECDSA 3c:e1:36:10:30:19:b3:e1:43:73:a5:6c:76:9e:24:67 debug1: Host 'localhost' is known and matches the ECDSA host key. debug1: Found key in /home/incredible/.ssh/known_hosts:1 debug1: SSH2_MSG_NEWKEYS sent debug1: expecting SSH2_MSG_NEWKEYS debug1: SSH2_MSG_NEWKEYS received debug1: Roaming not allowed by server debug1: SSH2_MSG_SERVICE_REQUEST sent debug1: SSH2_MSG_SERVICE_ACCEPT received debug1: Authentications that can continue: publickey,password,keyboard-interactive debug1: Next authentication method: publickey debug1: Offering RSA public key: /home/incredible/.ssh/id_rsa debug1: Authentications that can continue: publickey,password,keyboard-interactive debug1: Trying private key: /home/incredible/.ssh/id_dsa debug1: Trying private key: /home/incredible/.ssh/id_ecdsa debug1: Trying private key: /home/incredible/.ssh/id_ed25519 debug1: Next authentication method: keyboard-interactive debug1: Authentications that can continue: publickey,password,keyboard-interactive debug1: Next authentication method: password incredible@localhost's password:
@heemayl: A continuación se muestra el resultado dessh -vvv localhost
debug1: Offering RSA public key: /home/incredible/.ssh/id_rsa debug3: send_pubkey_test debug2: we sent a publickey packet, wait for reply debug1: Authentications that can continue: publickey,password,keyboard-interactive debug1: Offering RSA public key: incredible@incredible debug3: send_pubkey_test debug2: we sent a publickey packet, wait for reply debug1: Authentications that can continue: publickey,password,keyboard-interactive debug1: Trying private key: /home/incredible/.ssh/id_dsa debug3: no such identity: /home/incredible/.ssh/id_dsa: No such file or directory debug1: Trying private key: /home/incredible/.ssh/id_ecdsa debug3: no such identity: /home/incredible/.ssh/id_ecdsa: No such file or directory debug1: Trying private key: /home/incredible/.ssh/id_ed25519 debug3: no such identity: /home/incredible/.ssh/id_ed25519: No such file or directory debug2: we did not send a packet, disable method debug3: authmethod_lookup keyboard-interactive debug3: remaining preferred: password debug3: authmethod_is_enabled keyboard-interactive debug1: Next authentication method: keyboard-interactive debug2: userauth_kbdint debug2: we sent a keyboard-interactive packet, wait for reply debug1: Authentications that can continue: publickey,password,keyboard-interactive debug3: userauth_kbdint: disable: no info_req_seen debug2: we did not send a packet, disable method debug3: authmethod_lookup password debug3: remaining preferred: debug3: authmethod_is_enabled password debug1: Next authentication method: password incredible@localhost's password:
Respuesta1
El problema se debe al permiso del ~/.ssh/authorized_keys
archivo. Su permiso no debe ser tal que otros puedan escribir en el archivo.
Por ejemplo, si el permiso está configurado como octal 666
(¡¡es realmente diabólico!!), como todos los demás pueden tener permiso de escritura en el archivo ~/.ssh/authorized_keys
, entonces el archivo será ignorado ssh
y se le solicitará la contraseña.
Suponiendo que el archivo ~/.ssh/authorized_keys
no existe de antemano, el siguiente comando
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
creará el archivo ~/.ssh/authorized_keys
con el permiso determinado por su umask
valor y luego agregará el contenido del ~/.ssh/id_rsa.pub
archivo.
Entonces, la solución es cambiar el permiso del archivo para que solo usted pueda escribirlo, por ejemplo:
chmod 600 ~/.ssh/authorized_keys