Ich versuche, eine sftp
Verbindung sshfs
mit dem folgenden Befehl in einen Ordner einzubinden, der einen Fehler auslöst.
~$ sshfs [email protected]:/ 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 ~/.ssh
Verzeichnis 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-server
Paket ist installiert. ( sudo apt-get install openssh-sftp-server
)
sftp
direkt dorthin? Was ist der Inhalt~/.bashrc
oder andere Startdateien in Ihrem Home-Verzeichnis des Servers?Received unexpected end-of-file from SFTP server
sftp
zu verschiedenen Benutzern? 3) Wie siehst dusshd_config
auf dem Server aus? 4) Wie~/.bashrc
siehst du aus?which sftp-server
. Subsystem sollte seinSubsystem sftp /usr/lib/openssh/sftp-server
. Hast dusftp-server
installiert?apt-get install openssh-sftp-server
.Antworten:
Ihr
Subsystem
Wert insshd_config
ist falsch.Es sollte
Subsystem sftp /usr/lib/openssh/sftp-server
oder seininternal-sftp
. Versuchen Sie, den/etc/ssh/sshd_config
Wert auf diesen Wert zu ändern , starten Sie den SSH-Dienst neu und versuchen Sie es erneut.quelle
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
sudo
und 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,
$HOME
dass die Verwendung auch funktioniert hätte (da sie früher erweitert worden wäre).quelle
Diese Fehlermeldung wird angezeigt, wenn auf dem Remoteserver Dropbear anstelle von OpenSSH ausgeführt wird.
Von hier aus: /unix/363540/mount-a-filesystem-using-sshfs-using-the-dropbear-server-on-yocto-firmware
quelle
Wenn Sie den Host über ssh selbst verbinden können:
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:
quelle
Ich bin nicht sicher, ob es hilft, aber ich hatte ein ähnliches Problem
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):
anstelle von Standard-SSH, wenn die Portnummer 22 ist. Für die SSHFS-Verbindung musste also dasselbe verwendet werden:
Es hat mein Problem gelöst.
quelle
Eine weitere Ursache, die mir passiert ist, war, dass der
dropbearmulti
Binärdatei selbst die Zeichenfolge fehlte, die/usr/libexec/sftp-server
irgendwo 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 "dropbear
Zeigen auf"dropbearmulti
. Sie stoppen die aktuelle mitstopservice sshd
und führen dann die funktionierende aus. Sehen Sie,ps
wie die richtigen Parameter aussehen. Es ist am besten, es auf jffs zu haben (oder es nach / tmp zu entpacken), damit Sie immer nochumount
jedes Laufwerk haben können.quelle