SSH liest offenbar keine Schlüssel in ~ / .ssh

7

Dies wird von einem Ubuntu 16.04-Client ausgegeben:

OpenSSH_7.2p2 Ubuntu-4, OpenSSL 1.0.2g-fips  1 Mar 2016
debug1: Reading configuration data /home/manuth/.ssh/config
debug1: /home/manuth/.ssh/config line 1: Applying options for r2d2.manuth.life
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug1: Connecting to r2d2.manuth.life [103.12.163.90] port 900.
debug1: Connection established.
debug1: identity file /home/manuth/.ssh/dqar-rsa type 1
debug1: key_load_public: No such file or directory
debug1: identity file /home/manuth/.ssh/dqar-rsa-cert type -1
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_7.2p2 Ubuntu-4
ssh_exchange_identification: Connection closed by remote host

Der Pfad und die Berechtigung für /home/manuth/.ssh/dqar-rsasind ebenfalls korrekt:

$ ls -l /home/manuth/.ssh/dqar-rsa*
-rw------- 1 manuth manuth 3243 Nov  7 11:27 /home/manuth/.ssh/dqar-rsa
-rw-r--r-- 1 manuth manuth  740 Nov  7 11:27 /home/manuth/.ssh/dqar-rsa.pub

Der Eintrag für diesen Host in ~/.ssh/configlautet:

host r2d2.manuth.life
 IdentityFile ~/.ssh/dqar-rsa
 Port 900
 IdentitiesOnly yes
 ForwardX11 yes

Wenn ich das versuchen zu kommentieren IdentityFileLinie, ist es nicht einmal lesen id_*innen ~/.ssh:

OpenSSH_7.2p2 Ubuntu-4, OpenSSL 1.0.2g-fips  1 Mar 2016
debug1: Reading configuration data /home/manuth/.ssh/config
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug1: Connecting to r2d2.manuth.life [103.12.163.90] port 900.
debug1: Connection established.
debug1: identity file /home/manuth/.ssh/id_rsa type 1
debug1: key_load_public: No such file or directory
debug1: identity file /home/manuth/.ssh/id_rsa-cert type -1
debug1: key_load_public: No such file or directory
debug1: identity file /home/manuth/.ssh/id_dsa type -1
debug1: key_load_public: No such file or directory
debug1: identity file /home/manuth/.ssh/id_dsa-cert type -1
debug1: key_load_public: No such file or directory
debug1: identity file /home/manuth/.ssh/id_ecdsa type -1
debug1: key_load_public: No such file or directory
debug1: identity file /home/manuth/.ssh/id_ecdsa-cert type -1
debug1: identity file /home/manuth/.ssh/id_ed25519 type 4
debug1: key_load_public: No such file or directory
debug1: identity file /home/manuth/.ssh/id_ed25519-cert type -1
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_7.2p2 Ubuntu-4
ssh_exchange_identification: Connection closed by remote host

Dies scheint heute plötzlich aufzutauchen.

Bearbeiten: Inhalt innen ~/.ssh:

$ ls -la
insgesamt 36
drwx------  2 manuth manuth 4096 Nov  7 16:28 .
drwxr-xr-x 53 manuth manuth 4096 Nov  7 13:31 ..
-rw-r--r--  1 manuth manuth  805 Nov  7 12:10 authorized_keys
-rw-r--r--  1 manuth manuth  543 Nov  7 13:47 config
-rw-------  1 manuth manuth  411 Nov  7 12:10 dqar-ed25519
-rw-r--r--  1 manuth manuth   96 Nov  7 12:10 dqar-ed25519.pub
-rw-------  1 manuth manuth 3243 Nov  7 12:10 dqar-rsa
-rw-r--r--  1 manuth manuth  740 Nov  7 12:10 dqar-rsa.pub
-rw-r--r--  1 manuth manuth 1990 Nov  7 15:14 known_hosts

Edit 2: Ah hah, die Konsolenausgabe bestand aus mehreren Zeilen:

Nov 7 13:51:32 dqar sshd [11316]: fatal: Missing privilege separation directory: /var/empty

Der betreffende Server ist FreeBSD 10.3.

Manuth Chek
quelle
1
Können Sie bitte eine ls -laim .ssh-Verzeichnis ausführen und die Ausgabe zu Ihrer Frage hinzufügen.
Brett Levene
2
Überprüfen Sie das SSH-Protokoll auf der anderen Seite des Servers, zu dem Sie eine Verbindung herstellen möchten. Wahrscheinlich liegt dort ein Berechtigungsproblem vor. In den Protokollen wird angegeben, wo.
Oldskool
@BrettLevene siehe meine Bearbeitung im OP.
Manuth Chek
Dank dafür. Können Sie bitte auch die Berechtigungen im relevanten Home-Verzeichnis der Remote-Server überprüfen? Stellen Sie sicher, dass weder für die Gruppe noch für die andere Schreibberechtigungsbit gesetzt ist.
Brett Levene
1
Habe gerade die Ursache und Lösung gefunden: Ich hatte keine /var/empty.
Manuth Chek

Antworten:

15
debug1: identity file /home/manuth/.ssh/dqar-rsa type 1

Sagt, dass es die Datei erfolgreich gelesen hat. Der Fehler ist woanders.

ssh_exchange_identification: Connection closed by remote host

Das ist das eigentliche Problem. Sie können aus irgendeinem Grund keine SSH-Verbindung zum Remote-Host herstellen. Sie werden wahrscheinlich auf die schwarze Liste gesetzt /etc/hosts.denyoder der Server akzeptiert die Verbindungen nicht und initiiert das SSH-Protokoll aus anderen Gründen (fehlende Verzeichnisse, Festplattenfehler, vollständige Festplatte usw.). In den Protokollen des Servers erfahren Sie mehr.

Nov 7 13:51:32 dqar sshd [11316]: fatal: Missing privilege separation directory: /var/empty

Erklärt es ziemlich genau. Sie müssen dieses Verzeichnis erstellen, wenn es aus bestimmten Gründen entfernt wurde, und die entsprechenden Berechtigungen festlegen (nicht von anderen Benutzern als root beschreibbar).

Jakuje
quelle
Ich glaube jedoch nicht, dass ich auf der schwarzen Liste stehe. Immer noch die gleiche Ausgabe, auch wenn ich über VPN eine Verbindung herstelle (und stattdessen die lokale IP-Adresse verwende).
Manuth Chek
1
Überprüfen Sie daher das Serverprotokoll wie oben beschrieben. Oder etwas anderes unterbricht Ihre Verbindung. Es hängt jedoch nicht unbedingt mit einem Ihrer Client-Schlüssel zusammen.
Jakuje
1
Insgesamt eine gute Antwort. Obwohl der Teil, der wahrscheinlich mit /etc/hosts.deny auf die schwarze Liste gesetzt wurde, zu Schlussfolgerungen zu springen scheint. Es gibt viele andere mögliche Gründe, warum die Verbindung zu diesem Zeitpunkt unterbrochen wird. Ich denke, das letzte Mal, als ich das sah, wurde es durch einen Festplattenfehler auf dem Server verursacht.
Kasperd
2
"Sie können aus irgendeinem Grund keine Verbindung zum Remote-Host herstellen." - Das ist falsch; Die Verbindung wurde hergestellt und wird dann von der anderen Seite geschlossen. Das ist eine wichtige Unterscheidung, da die Ursachen für die beiden Situationen sehr unterschiedlich sind.
Marcelm
1
@marcelm Es hängt von der Ebene ab, auf der Sie die "Verbindung" beschreiben. Wenn Sie über eine TCP-Verbindung sprechen, haben Sie Recht, wenn Sie über eine SSH-Verbindung sprechen, ist dies nicht der Fall. Aber ich verstehe, dass es besser formuliert werden kann.
Jakuje
5

Der Grund war also, dass es irgendwie keine gab /var/empty. Ich habe es aus diesem Forumsbeitrag zurück erstellt (ich weiß, dass es für Juniper ist, aber es funktioniert auch auf dieser FreeBSD): http://forums.juniper.net/t5/Ethernet-Switching/Missing-privilege-separation-directory-var -leer / td-p / 173832

Manuth Chek
quelle
3
Gut für Sie, dass Sie die eigentliche Antwort veröffentlicht haben, aber ich denke, Sie sind es Jakuje schuldig, seine / ihre Antwort zu akzeptieren: Es war seine / ihre Analyse, dass nichts auf der Client-Seite falsch war, was Sie zum Server und zu meinen Gedanken führte ) er verdient die Anerkennung.
MadHatter
@ MadHatter Ich habe ihn / sie allerdings positiv bewertet.
Manuth Chek