Hadoop no Ubuntu: não é possível criar o SSH sem senha

2

Estou aprendendo sobre o Hadoop e tentando criar o SSH sem senha seguindo o procedimento definido no livro: Hadoop: The Definitive guide

  

Configurando o SSH

     

O modo pseudodistribuído é apenas um caso especial do modo totalmente distribuído em que   o host (único) é localhost, por isso precisamos ter certeza de que podemos SSH para localhost e   faça o login sem ter que digitar uma senha.

     

Primeiro, verifique se o SSH está instalado e se um servidor está em execução (I   Não tenho certeza sobre isso, o que eles significam). No Ubuntu, por exemplo,   isso é conseguido com:

sudo  apt-get install ssh
     

Depois, para ativar o login sem senha, gere uma nova chave SSH com uma frase secreta vazia:

  ssh-keygen  -t  rsa -P  ''  -f  ~/.ssh/id_rsa
  cat ~/.ssh/id_rsa.pub   >>  ~/.ssh/authorized_keys
     

Você também pode precisar executar ssh-add se estiver executando o ssh-agent.Test com o qual você pode se conectar:

  ssh localhost
     

Se for bem sucedido, não deverá digitar uma senha.

Tudo parece estar funcionando bem, mas ainda pede senha. Eu estou dando minha senha de login, que eu também uso para acesso root. mas não funciona de todo. Por favor sugira.

Adicionando mais informações. Eu apaguei a chave antiga e adicionei nova.

cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

As permissões do meu arquivo depois disso

-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

depois de alterar a permissão de Authorized_key, é

-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

Mas mesmo depois disso, ele está me pedindo senha quando eu faço ssh localhost

Adicionando mais informações de ssh -v localhost feitas 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: segue a saída de ssh -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:

    
por Incredible 23.05.2015 / 19:26

1 resposta

1

O problema é devido à permissão do arquivo ~/.ssh/authorized_keys . Sua permissão não deve ser tal que outros possam escrever no arquivo.

Por exemplo, se a permissão estiver definida como octal 666 (na verdade é um diabo !!), como todos os outros podem ter permissão de gravação no arquivo ~/.ssh/authorized_keys , o arquivo será ignorado por ssh e você será solicitado a senha.

Assumindo que o arquivo ~/.ssh/authorized_keys não exista de antemão, o seguinte comando

cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

criará o arquivo ~/.ssh/authorized_keys com a permissão determinada pelo seu valor umask e, em seguida, anexará o conteúdo do arquivo ~/.ssh/id_rsa.pub .

Portanto, a solução é alterar a permissão do arquivo para que ele seja apenas gravável por você, por exemplo:

chmod 600 ~/.ssh/authorized_keys
    
por heemayl 23.05.2015 / 19:41