Warum erhalte ich die Fehlermeldung "Verbindung zu [Host] durch Remote-Host geschlossen" über SFTP-Verbindung?

492
Crolle

Ich möchte eine Verbindung userzu einem Remote-Host über SFTP herstellen.

Außerdem möchte ich in einem bestimmten Verzeichnis landen (sagen wir /home/user/dir). Ich habe einen Benutzer mit dem Standardarbeitsverzeichnis als erstellt /home/user/dirund eine /home/user/.ssh/authorized_keyDatei als Host für meinen öffentlichen Schlüssel festgelegt.

Beim Verbinden mit sftp -P 7000 user@host.comund nach dem Eingeben userdes Passworts erhalte ich jedoch die folgende Fehlermeldung:Connection to host.com closed by remote host. Connection closed.

Irgendeine Idee, woher es kommen könnte (oder wie man diese Art von Problemen debuggt)?

AKTUALISIEREN

Ich sollte mich endlich verbinden, userweil ich authorized_keynicht die richtigen Rechte hatte. Ich habe jedoch genau die gleiche Fehlermeldung erhalten, als ich versuchte, /home/user/dirbei einem anderen Benutzer zu landen (sagen wir user2), dem Gruppenzugriff gewährt wurde /home/user/dir. Wie sich jedoch in dieser Antwort herausstellt, lässt das SFTP-Chroot-Gefängnis dies nicht zu. Ich werde versuchen, symbolische Verbindungen zwischen /home/user/dirund /home/user2/dirzur Lösung dieses Problems zu verwenden.

2
Fügen Sie zuerst -vvv hinzu: `sftp -P 7000 user@host.com -vvv` und zeigen Sie die Ausgabe an Tomasz Jakub Rup vor 6 Jahren 1
Ich bekomme genau die gleiche Ausgabe: `Verbindung zu Host.com durch Remote-Host geschlossen. Verbindung geschlossen. " Crolle vor 6 Jahren 0
Haben Sie / home / user / dir als $ HOME des Benutzers festgelegt? oder was haben Sie sonst noch getan, um "in einem bestimmten Verzeichnis zu landen"? Hat die Anmeldung funktioniert, bevor Sie das Verzeichnis geändert haben? hyph vor 6 Jahren 0
Entschuldigung, meine Schuld: `sftp -P 7000 -vvv user @ host.com` Tomasz Jakub Rup vor 6 Jahren 0
@hyph Ich definierte das `user`-Standardverzeichnis mit` usermod -m -d / home / user / dir user`. @Tomasz Jakub Rup Das Protokoll ist recht umfangreich: https://pastebin.com/0dRZBPUS Crolle vor 6 Jahren 0
Bitte zeigen Sie Ihre `.bashrc`-Datei (von` host.com`) Tomasz Jakub Rup vor 6 Jahren 0
Dann legen Sie Ihre dotfiles und Ordner in / home / user / dir nicht in / home / user ab und es sollte funktionieren. hyph vor 6 Jahren 0

1 Antwort auf die Frage

1
Tomasz Jakub Rup

Wie debuggen?

Der erste Schritt besteht darin, den Befehl mit verbose Flag auszuführen:

sftp -P 7000 -vvv user@host.com 

Log analysieren

Verbindung wird hergestellt

debug1: Authentication succeeded (publickey). 

Der sshNicht-Sperrmodus kann jedoch nicht eingestellt werden:

debug3: fd 1 is not O_NONBLOCK Connection to host.com closed by remote host. 

Wahrscheinlich Ihre Shell - Initialisierungsdatei ( .bashrc, .bash_profileusw.) brechen SSH - Verbindung