Berechtigungen für SSH, die Probleme verursachen

2

Ich versuche, SSH von meinem lokalen Computer auf meinen Server zu übertragen. In der Vergangenheit musste ich kein Passwort eingeben, da sich mein öffentlicher Schlüssel auf dem Server in befand authorized_keys. Ich denke jedoch, dass heute einige Berechtigungen für einige Dateien geändert wurden und dass bei jedem Versuch, SSH zu verwenden, ein Kennwort abgefragt wird.

Was sind die korrekten / Standardberechtigungen für den Ordner .ssh und dessen Inhalt auf meinem lokalen Computer / Server?

Hier sind meine aktuellen Berechtigungen

Mein Server

[root@server9987 .ssh]# ls -la
total 24
drwx------ 2 root root 4096 Oct 17 03:29 .
drwxr-x--- 7 root root 4096 Oct 17 03:29 ..
-rw------- 1 root root  397 Oct 16 19:11 authorized_keys
-rw------- 1 root root 1675 Oct 12 02:10 id_rsa
-rw------- 1 root root  398 Oct 12 02:10 id_rsa.pub
-rwxrwxrwx 1 root root  830 Oct 17 03:29 known_hosts

Mein lokaler Rechner

➜  .ssh  l
total 32
drwx------  6 Oliver  staff   204 17 Oct 00:28 .
drwxr-xr-x  7 Oliver  staff   238 16 Oct 17:28 ..
-rw-------  1 Oliver  staff   332 16 Oct 17:28 config
-rw-------  1 Oliver  staff  1766 13 Jul 11:13 id_rsa
-rw-------  1 Oliver  staff   398 13 Jul 11:13 id_rsa.pub
-rw-------  1 Oliver  staff  3312 17 Oct 00:28 known_hosts
Oliver Joseph Ash
quelle
3
known_hostssollte nicht gruppen- oder weltbeschreibbar sein.
David Schwartz

Antworten:

5

Sie möchten, dass der private Schlüssel nur vom Eigentümer gelesen werden kann. Im Allgemeinen ist es eine gute Idee, alles in diesem Ordner nur für den Eigentümer lesbar und beschreibbar zu machen. Die Datei, mit der sich andere Benutzer über einen Schlüssel anmelden können, muss jedoch für den Benutzer lesbar sein, der den ssh-Dämon ausführt.

allgemein:

find ~/.ssh -type f -exec chmod 600 {} \;
chmod 755 ~/.ssh
chmod 644 ~/.ssh/authorized_keys

Update Standardberechtigungen für den Ordner ~ / .ssh sind 700 (openssh 5.9, gentoo) und einige Dateien:

$ ll .ssh; ll -d .ssh
-rw-r--r-- 1 jaroslav jaroslav 406 Oct 17 04:32 known_hosts
drwx------ 2 jaroslav jaroslav 4096 Oct 17 04:32 .ssh
-rw------- 1 jaroslav jaroslav 1766 Oct 17 04:37 id_rsa
-rw------- 1 jaroslav jaroslav  395 Oct 17 04:37 id_rsa.pub

Dies geschieht, nachdem ich meine ursprüngliche .ssh-Datei entfernt und ssh hostname.org ausgeführt habe . ssh-keygen . Die mit den openssh-Befehlen erstellten Dateien scheinen von umask nicht betroffen zu sein

Ich habe also immer noch Recht, und die Kommentare / Abstimmungen haben nichts zu meiner Antwort: '(.

Der Grund, warum .ssh 700 sein kann, ist, dass sshd hauptsächlich von root ausgeführt wird, die lesen kann, was sie will, egal was. Der Grund, warum sshd hauptsächlich von root ausgeführt wird, ist, dass der Dämon einen privilegierten Port abhören muss (<1024).

Ярослав Рахматуллин
quelle
1
Hahaha. Warum runter stimmen? Das ist eine richtige Antwort! Wie auch immer, ich habe mich eingehend damit beschäftigt zu erklären, was chmod bei SO bedeutet. Für alle Interessierten: stackoverflow.com/questions/11995894/…
Ярослав Рахматуллин
Es ist eine gute Antwort, und meistens ist es die richtige Antwort für die meisten Probleme wie dieses. Es war jedoch einfach nicht die exakte Antwort auf diese spezielle Situation. Oder zumindest ein Problem verpasst, wenn es mehr als ein Problem gibt (die vom Fragesteller angezeigten Informationen sind nicht vollständig). (хороший аватар)
Skaperen
Vielen Dank für Ihre Antwort. Ich werde jedoch immer noch nach einem Passwort gefragt. Wenn die Berechtigungen stimmen, gibt es noch weitere Ideen, was dies verursachen könnte?
Oliver Joseph Ash
Ja. 1 - Pam ist nicht richtig konfiguriert (komisch, weil es vorher war). 2 - PubkeyAuthentication, AuthorizedKeysFile, UsePAM in / etc / ssh / sshd_config nicht richtig eingestellt. 3 - Ihr öffentlicher Schlüssel befindet sich nicht in ~ / .ssh / authorized_keys des Zielbenutzers. 4 - Ihre ~ / .ssh / id_ [rd] sa ist nicht diejenige, die autorized_keys auf dem Ziel hinzugefügt wird. 5 - .ssh / known_hosts hat einen nicht übereinstimmenden Fingerabdruck für den Server (wilde Vermutung, sollte nur eine Warnung sein).
Ярослав Рахматуллин
Es ist nicht 3 oder 4, weil ich beide bestätigt habe. Ich habe sogar versucht, einen neuen Schlüssel zu generieren und authorisierte_schlüssel durch diesen zu ersetzen, ohne Erfolg. Ich habe auch versucht, known_hosts auf meinem lokalen Computer zu löschen, damit er sich selbst neu generiert. Es muss 1 oder 2 sein, aber ich habe keine Ahnung, was Pam ist!
Oliver Joseph Ash
1

Habe die Antwort in diesem Thread gefunden . Es waren nicht die Berechtigungen für die SSH-Dateien / -Ordner, sondern die Berechtigungen für das Benutzerverzeichnis.

Oliver Joseph Ash
quelle
1
Das ist auch eine Voraussetzung, ja. Wenn Sie ein ähnliches Problem haben, überprüfen Sie die Protokolldatei auf sshd. Normalerweise wird dies beibehalten /var/log/secure. Seltener /var/log/auth.log. Selten in /var/log/syslogoder /var/log/messages. In der Regel
erfahren
Ich musste zugeben, dass ich nie ein Problem hatte, bei dem mein privater Ordner von anderen beschrieben werden konnte, also habe ich nicht einmal darüber nachgedacht. Du lebst, du lernst: D
Ярослав Рахматуллин