Hadoop in Ubuntu: Passwortloses SSH kann nicht erstellt werden

Hadoop in Ubuntu: Passwortloses SSH kann nicht erstellt werden

Ich lerne Hadoop und versuche, das passwortlose SSH gemäß dem im Buch definierten Verfahren zu erstellen:Hadoop: Der ultimative Leitfaden

SSH konfigurieren

Der pseudoverteilte Modus ist nur ein Sonderfall des vollständig verteilten Modus, bei dem der (einzelne) Host der lokale Host ist. Daher müssen wir sicherstellen, dass wir per SSH eine Verbindung zum lokalen Host herstellen und uns anmelden können, ohne ein Kennwort eingeben zu müssen.

Stellen Sie zunächst sicher, dass SSH installiert ist und ein Server läuft(Ich bin mir nicht sicher, was sie damit meinen). Unter Ubuntu wird dies beispielsweise mit folgendem erreicht:

sudo  apt-get install ssh

Um die passwortlose Anmeldung zu aktivieren, generieren Sie dann einen neuen SSH-Schlüssel mit einer leeren Passphrase:

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

Möglicherweise müssen Sie auchssh-hinzufügenwenn Sie ssh-agent.Test ausführen, mit dem Sie eine Verbindung herstellen können:

  ssh localhost

Bei Erfolg sollten Sie kein Passwort eingeben müssen.

Alles scheint gut zu funktionieren, aber es wird immer noch nach einem Passwort gefragt. Ich gebe mein Anmeldekennwort ein, das ich auch für den Root-Zugriff verwende. Aber es funktioniert überhaupt nicht. Bitte geben Sie mir einen Vorschlag.

Weitere Informationen hinzufügen. Ich habe den alten Schlüssel gelöscht und einen neuen hinzugefügt.

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

Meine Dateiberechtigungen danach waren

-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

nach dem Ändern der Berechtigung von Authorized_key ist 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

Aber auch danach werde ich nach dem Passwort gefragt, wenn ichssh localhost

Weitere Info-Ausgabe der ssh -v localhostFrage von @heemayl hinzufügen

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: Folgendes ist die Ausgabe vonssh -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:

Antwort1

Das Problem liegt an der Berechtigung der ~/.ssh/authorized_keysDatei. Die Berechtigung sollte nicht so beschaffen sein, dass andere in die Datei schreiben können.

Wenn die Berechtigung beispielsweise auf Oktal gesetzt ist (das ist wirklich teuflisch!!), wird die Datei 666wie alle anderen ignoriert und Sie werden zur Eingabe des Kennworts aufgefordert, wenn Sie über Schreibberechtigung für die Datei verfügen .~/.ssh/authorized_keysssh

Vorausgesetzt, die Datei ~/.ssh/authorized_keysexistiert noch nicht, wird der folgende Befehl

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

erstellt die Datei ~/.ssh/authorized_keysmit der durch Ihren Wert bestimmten Berechtigung umaskund hängt dann den Inhalt der ~/.ssh/id_rsa.pubDatei an.

Die Lösung besteht darin, die Berechtigung der Datei so zu ändern, dass sie nur von Ihnen beschreibbar ist, zum Beispiel:

chmod 600 ~/.ssh/authorized_keys

verwandte Informationen