sshfs mit der Angabe "Remote-Host wurde getrennt"


13

Ich versuche, eine sftpVerbindung sshfsmit dem folgenden Befehl in einen Ordner einzubinden, der einen Fehler auslöst.

~$ sshfs admin@example.com:/ testfo
remote host has disconnected

Der gleiche Fehler tritt auf, wenn ich SSH in das System und wiederhole den Befehl mit localhost. Dieser Befehl funktionierte auch mit einem anderen Computer, daher liegt das Problem irgendwo auf dem Server.

~$ cat /var/log/auth.log

[...]

May 24 22:49:43 example sshd[20095]: Accepted publickey for admin from 24.111.222.33 port 47086 ssh2: RSA ad:xx:6e:xx:14:xx:bd:b5:xx:cb:66:xx:xx:xx:a3:ac
May 24 22:49:43 example sshd[20095]: pam_unix(sshd:session): session opened for user admin by (uid=0)
May 24 22:49:43 example systemd-logind[812]: Removed session 60.
May 24 22:49:43 example systemd-logind[812]: New session 61 of user admin.
May 24 22:49:44 example sshd[20143]: Received disconnect from 24.203.164.45: 11: disconnected by admin
May 24 22:49:44 example sshd[20095]: pam_unix(sshd:session): session closed for user admin

Das ~/.sshVerzeichnis gehört dem Administrator, da ich dies als Debugging-Versuch für ein ähnliches Problem angesehen habe.

Zusätzliche Informationen zum späteren Nachschlagen:

Das Problem liegt nicht bei SSH selbst, sondern bei SFTP. Dies zeigt sich darin, dass SSH-Verbindungen ordnungsgemäß funktionieren, SFTP jedoch immer fehlschlägt. Der Versuch, SFTP zu verwenden, führt zuReceived unexpected end-of-file from SFTP server

Das Problem hängt nicht mit den von Anmeldeskripten ausgegebenen Zeichenfolgen zusammen (z ~/.bashrc. B. ).

Das Problem tritt bei allen Benutzern (einschließlich root) auf.

Hier ist meine sshd Konfiguration ( /etc/ssh/sshd_config):

# Package generated configuration file
# See the sshd_config(5) manpage for details

# What ports, IPs and protocols we listen for
Port 22
# Use these options to restrict which interfaces/protocols sshd will bind to
#ListenAddress ::
#ListenAddress 0.0.0.0
Protocol 2
# HostKeys for protocol version 2
HostKey /etc/ssh/ssh_host_rsa_key
HostKey /etc/ssh/ssh_host_dsa_key
HostKey /etc/ssh/ssh_host_ecdsa_key
HostKey /etc/ssh/ssh_host_ed25519_key
#Privilege Separation is turned on for security
UsePrivilegeSeparation yes

# Lifetime and size of ephemeral version 1 server key
KeyRegenerationInterval 3600
ServerKeyBits 1024

# Logging
SyslogFacility AUTH
LogLevel INFO

# Authentication:
LoginGraceTime 120
PermitRootLogin yes
StrictModes yes

RSAAuthentication yes
PubkeyAuthentication yes
#AuthorizedKeysFile %h/.ssh/authorized_keys

# Don't read the user's ~/.rhosts and ~/.shosts files
IgnoreRhosts yes
# For this to work you will also need host keys in /etc/ssh_known_hosts
RhostsRSAAuthentication no
# similar for protocol version 2
HostbasedAuthentication no
# Uncomment if you don't trust ~/.ssh/known_hosts for RhostsRSAAuthentication
#IgnoreUserKnownHosts yes

# To enable empty passwords, change to yes (NOT RECOMMENDED)
PermitEmptyPasswords no

# Change to yes to enable challenge-response passwords (beware issues with
# some PAM modules and threads)
ChallengeResponseAuthentication no

# Change to no to disable tunnelled clear text passwords
#PasswordAuthentication yes

# Kerberos options
#KerberosAuthentication no
#KerberosGetAFSToken no
#KerberosOrLocalPasswd yes
#KerberosTicketCleanup yes

# GSSAPI options
#GSSAPIAuthentication no
#GSSAPICleanupCredentials yes

X11Forwarding yes
X11DisplayOffset 10
PrintMotd no
PrintLastLog yes
TCPKeepAlive yes
#UseLogin no

#MaxStartups 10:30:60
#Banner /etc/issue.net

# Allow client to pass locale environment variables
AcceptEnv LANG LC_*

Subsystem sftp sftp-server

# Set this to 'yes' to enable PAM authentication, account processing,
# and session processing. If this is enabled, PAM authentication will
# be allowed through the ChallengeResponseAuthentication and
# PasswordAuthentication.  Depending on your PAM configuration,
# PAM authentication via ChallengeResponseAuthentication may bypass
# the setting of "PermitRootLogin without-password".
# If you just want the PAM account and session checks to run without
# PAM authentication, then enable this but set PasswordAuthentication
# and ChallengeResponseAuthentication to 'no'.
UsePAM yes

sftp-serverPaket ist installiert. ( sudo apt-get install openssh-sftp-server)


1) Können Sie sftpdirekt dorthin? Was ist der Inhalt ~/.bashrcoder andere Startdateien in Ihrem Home-Verzeichnis des Servers?
Jakuje

@ Jakuje Hmm .. das Problem scheint tatsächlich mit SFTP zu sein. Der Versuch mit Filezilla gibtReceived unexpected end-of-file from SFTP server
Slava Knyazev

2) Können Sie sftpzu verschiedenen Benutzern? 3) Wie siehst du sshd_configauf dem Server aus? 4) Wie ~/.bashrcsiehst du aus?
Jakuje

@Jakuje Gleiche 2) Nein .. Gleicher Fehler für alle Benutzer. 3) pastebin.com/raw/ujNk3fVR 4) bashrc hat nichts von Relevanz, aber hier: pastebin.com/raw/mUD3DWmG
Slava Knyazev

Was bekommen Sie von which sftp-server. Subsystem sollte sein Subsystem sftp /usr/lib/openssh/sftp-server. Hast du sftp-serverinstalliert? apt-get install openssh-sftp-server.
Jakuje

Antworten:


5

Ihr SubsystemWert in sshd_configist falsch.

Es sollte Subsystem sftp /usr/lib/openssh/sftp-serveroder sein internal-sftp. Versuchen Sie, den /etc/ssh/sshd_configWert auf diesen Wert zu ändern , starten Sie den SSH-Dienst neu und versuchen Sie es erneut.


5

Alte Frage, aber die erste, die für dieses Problem auftaucht.

Mein Problem war, dass für den Server eine Schlüsselauthentifizierung erforderlich war, aber ich habe den Befehl mit sudound angegeben ausgeführt -o IdentityFile=~/.ssh/id_rsa, was bedeutet, dass er ~auf das Stammverzeichnis und nicht auf das meine erweitert wurde.

Die Angabe des vollständigen Pfades hat funktioniert, und ich kann mir vorstellen, $HOMEdass die Verwendung auch funktioniert hätte (da sie früher erweitert worden wäre).


Danke, konnte mit diesem Tipp montieren.
Bemmu


0

Wenn Sie den Host über ssh selbst verbinden können:

ssh xxx.xxx.xxx.xxx

Möglicherweise werden Sie aufgefordert, den Schlüssel zu speichern. Sie müssen YES und nicht nur Y eingeben. Anschließend sollten Sie nach dem Benutzernamen und dem Kennwort für den Benutzer auf diesem Remotecomputer gefragt werden.

Verwenden Sie die, mit der Sie sshfs ausführen möchten, und geben Sie Ihre Ergebnisse zurück.

Wenn Ihnen eine Verbindung verweigert wird, haben Sie vermutlich SSH nicht auf dem Remotecomputer installiert. Open ssh kann mit diesem Befehl installiert und auf dem Remotecomputer ausgeführt werden:

sudo apt install openssh-server

1
Ja, ich kann es ssh. "Der gleiche Fehler tritt auf, wenn ich SSH in das System [..]" implizierte. Server ist soweit ich weiß korrekt eingerichtet
Slava Knyazev

OK, ich kann es vermissen, Ihren Kommentar zu lesen, wenn Sie sich erfolgreich mit ssh anmelden konnten oder wie ich hier gelesen habe: "Der gleiche Fehler tritt auf, wenn ich SSH in das System [..]"
Christopher Angulo-Bertram

Ich kann es ganz gut ssh
Slava Knyazev

OK, wenn Sie auf Ihre Befehlszeile schauen, haben Sie vielleicht einen zusätzlichen Platz? Ich habe diesen online gefunden. Ich werde Ihnen den Link senden. sshfs <Benutzername> @ <IP-Adresse>: / remotepath ~ / remoteserv Ich habe es hier gefunden: howtogeek.com/howto/ubuntu/… Es gibt eine Reihe anderer Anweisungen, aber in Ihrer ursprünglichen Frage scheint Ihr Befehl einen zusätzlichen Platz zu haben
Christopher Angulo-Bertram

Ich sehe auch nicht, wo Sie als Verzeichnis eine Verbindung zu Ihrem lokalen System herstellen. Ihr Code mein Code zu folgen: sshfs admin@example.com: / testfo
Christopher Angulo-Bertram

0

Ich bin nicht sicher, ob es hilft, aber ich hatte ein ähnliches Problem

remote host has disconnected

und nach einigem googeln & stöbern wurde mir klar, dass ich ssh tatsächlich über einen anderen port verbunden habe.

So musste ich zum Beispiel eine Verbindung über ssh herstellen (Beispiel unter der Annahme der Portnummer 1234):

ssh username@example.com -p 1234

anstelle von Standard-SSH, wenn die Portnummer 22 ist. Für die SSHFS-Verbindung musste also dasselbe verwendet werden:

sshfs username@example.com:/ ~/testfolder -p 1234

Es hat mein Problem gelöst.


0

Eine weitere Ursache, die mir passiert ist, war, dass der dropbearmultiBinärdatei selbst die Zeichenfolge fehlte, die /usr/libexec/sftp-serverirgendwo um Build 33600 von DD-WRT verloren gegangen ist. Überprüfen Sie, ob die Binärdatei diese Datei erwähnt oder ob sie auch dann nicht funktioniert, wenn sie vorhanden ist. Ich musste eine Binärdatei aus Build 33525 verwenden und einen Launcher erstellen, der den normalen Buggy-Dropbear tötet, und dann diesen ausführen. Sie erstellen einen Symlink mit dem Namen " dropbearZeigen auf" dropbearmulti. Sie stoppen die aktuelle mit stopservice sshdund führen dann die funktionierende aus. Sehen Sie, pswie die richtigen Parameter aussehen. Es ist am besten, es auf jffs zu haben (oder es nach / tmp zu entpacken), damit Sie immer noch umountjedes Laufwerk haben können.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.