2012-12-09 11 views
7

Ich versuche, mit einem SSH-Schlüssel eine Verbindung zu einem Centos 6.3 Server herzustellen, damit ich ein Skript remote ausführen kann, ohne jedes Mal nach einem Kennwort zu fragen. Ich habe die folgenden Hinweise:Verbinden mit einem Remote-Centos-Server mit SSH-Schlüsseln

  1. Anmeldung an den Server des normalen ssh-Befehl und das Kennwort ein Mal, damit der Server fügt Ihr Computer mit dem bekannten Hosts
  2. In Ihrem Computer mit Cygwin-Terminal erzeugt die Tasten und lassen Sie das Passwort leer: ssh-keygen -t rsa
  3. Jetzt setzen Sie die Berechtigungen auf dem privaten Schlüssel und sSH-Ordner: chmod 700 ~/.ssh & chmod 600 ~/.ssh/id_rsa
  4. Kopieren Sie die öffentlichen Schlüssel (id_rsa.pub) an den Server, auf dem Server anmelden und den öffentlichen Schlüssel an die authorized_keys Liste hinzufügen : cat id_rsa.pub >> ~/.ssh/authorized_keys
  5. Sobald Sie den öffentlichen Schlüssel importiert haben, können Sie ihn vom Server löschen. Legen Sie die Dateiberechtigungen auf dem Server: chmod 700 ~/.ssh & chmod 600 ~/.ssh/authorized_keys
  6. Retart des SSH-Daemon auf dem Server: service sshd restart
  7. Testen Sie die Verbindung von Ihrem Computer: ssh [email protected]

Aber wenn ich versuche, auf den Remote-Server ssh ist es immer noch fragt mich nach dem Passwort. Der .ssh-Ordner wurde nicht auf dem Server erstellt, daher musste ich mich selbst erstellen. Irgendwelche Ideen was passieren könnte? Habe ich etwas verpasst? Gibt es eine andere Möglichkeit, die Schlüssel einzurichten?

+1

, wenn Sie ~ beziehen, was für Benutzer reden Sie? Auch Neustart von sshd ist nicht notwendig, um Schlüssel zu ändern ... – Blaskovicz

+0

@guillermog bitte kümmern uns um die Formatierung in Ihre zukünftigen Fragen. Es sollte klar und leicht zu lesen sein, sonst ist es nur eine Textwand und eine Abschaltung. – Siddharth

+0

@Blaskovicz Ich benutze den Root-Benutzer. – guillermog

Antwort

3

Nun, es stellt sich heraus, ich dummerweise hatte der Besitzer des /root Verzeichnis geändert, als ich die Einrichtung der Server, da dies ist, wo das /.ssh Verzeichnis für den Benutzer war, den ich versuchte, mit (root) einzuloggen es den Zugriff auf dieses Verzeichnis verweigert, weil es zu einem anderen Benutzer gehörte.

Dec 10 16:25:49 thyme sshd[9121]: Authentication refused: bad ownership or modes for directory /root 

Ich änderte den Besitzer zurück zu root und das tat es.

chown root /root 

Danke Jungs für Sie helfen.

4

Anscheinend ist dies ein bekannter bug. Die vorgeschlagene Lösung ist eigentlich nicht, aber ich fand, dass dies würde auf einem CentOS 6.2 System bei der Arbeit:

chmod 600 .ssh/authorized_keys 
chmod 700 .ssh 
+0

Versucht dies aber immer noch kein Glück. – guillermog

1

Althogh OP hatte eine Lösung gefunden, würde ich gerne meine Lösung von ähnlichen Problem in der Hoffnung, dass es für diejenigen, die ähnliche Problem Google google und diese Antwort zu erreichen.

Der Grund für mein Problem ist, dass das Verzeichnis .ssh im Home-Ordner des Benutzers auf dem CentOS-Server nicht ordnungsgemäß eingerichtet wurde, nachdem es vom useradd-Befehl erstellt wurde.

Außerdem muss ich manuell .ssh Ordner-Modus durch folgende Befehle ein:

chmod g-w /home/user

chmod 700 /home/user/.ssh

chmod 600 /home/user/.ssh/authorized_keys

+0

Schlüsselelement für mich war 'chmod g-w/home/user' – djangodude

1

Andere Antworten sind generisch, beachten Sie, dass Centos 6 verwendet selinux .selinux kann

Aus den bekannten Problemen in Centos 6 Release Notes Zugriff auf die authorised_keys Datei trotz richtigen Berechtigungen und Eigentums verweigern:

  • Stellen Sie sicher, dass Sie das Setup richtig die SELinux Kontext des öffentlichen Schlüssels, wenn Sie Übertragen Sie es auf einen CentOS 6 Server mit selinux aktiviert. Sonst kann selinux den Zugriff auf die Datei ~/.ssh/authorized_keys verbieten, und durch die Schlüsselnummer funktioniert die Authentifizierung nicht. Um Setup die richtigen Kontext können Sie:

    restorecon -R -v /home/user/.ssh

  • ssh-copy-id von CentOS 6 ist sich dessen bewusst selinux Kontexte und dem vorherigen Abhilfe wird nicht benötigt.

Verwandte Themen