
Estou aprendendo Hadoop e tentando criar o SSH sem senha seguindo o procedimento definido no Livro:Hadoop: o guia definitivo
Configurando SSH
O modo pseudodistribuído é apenas um caso especial de modo totalmente distribuído em que o (único) host é localhost, portanto, precisamos ter certeza de que podemos fazer SSH para localhost e fazer login sem precisar inserir uma senha.
Primeiro, certifique-se de que o SSH esteja instalado e um servidor está rodando(Não tenho certeza sobre isso, o que eles significam). No Ubuntu, por exemplo, isso é conseguido com:
sudo apt-get install ssh
Em seguida, para ativar o login sem senha, gere uma nova chave SSH com uma senha vazia:
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
Você também pode precisar executarssh-adicionarse você estiver executando ssh-agent.Test com o qual pode se conectar:
ssh localhost
Se for bem-sucedido, você não precisará digitar uma senha.
Tudo parece funcionar bem, mas ainda pede senha. Estou fornecendo minha senha de login, que também uso para acesso Root. mas não funciona de jeito nenhum. Por favor sugira.
Adicionando mais informações. Excluí a chave antiga e adicionei uma nova.
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
Minhas permissões de arquivo depois disso foram
-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 faço issossh localhost
Adicionando mais informações de saída ssh -v localhost
solicitadas 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 seguir está o 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:
Responder1
O problema é devido à permissão do ~/.ssh/authorized_keys
arquivo. Sua permissão não deve permitir que outras pessoas possam gravar no arquivo.
Por exemplo, se a permissão for definida como octal 666
(é o diabo mesmo !!), como todos os outros podem ter permissão de gravação no arquivo ~/.ssh/authorized_keys
, o arquivo será ignorado ssh
e você será solicitado a fornecer a senha.
Supondo 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 umask
valor e, em seguida, anexará o conteúdo do ~/.ssh/id_rsa.pub
arquivo.
Então, a solução é alterar a permissão do arquivo para que ele só possa ser gravado por você, por exemplo:
chmod 600 ~/.ssh/authorized_keys