sshfs donnant «l'hôte distant s'est déconnecté»

14

J'essaie de monter une sftpconnexion dans un dossier à l'aide sshfsde la commande suivante qui génère une erreur.

~$ sshfs [email protected]:/ testfo
remote host has disconnected

La même erreur se produit si je SSH dans le système et répète la commande avec localhost. Cette commande fonctionnait également avec une autre machine, donc le problème se situe quelque part sur le serveur.

~$ 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

Le ~/.sshrépertoire appartient à l'administrateur depuis que je l'ai vu comme une tentative de débogage pour un problème similaire.

Informations supplémentaires pour référence future:

Le problème n'est pas avec SSH lui-même, mais avec SFTP. Cela se manifeste par le fait que les connexions SSH fonctionnent correctement mais que SFTP échoue toujours. La tentative de SFTP entraîneReceived unexpected end-of-file from SFTP server

Le problème n'est pas lié aux chaînes de sortie des scripts de connexion (par exemple ~/.bashrc).

Le problème est présent chez tous les utilisateurs (y compris root).

Voici ma configuration sshd ( /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-serverle package est installé. ( sudo apt-get install openssh-sftp-server)

Slava Knyazev
la source
1) Pouvez-vous vous sftpy rendre directement? Quel est le contenu de ~/.bashrcou d'autres fichiers de démarrage dans votre répertoire personnel du serveur?
Jakuje
@Jakuje Hmm .. le problème semble être en fait avec sftp. Essayer avec filezilla donneReceived unexpected end-of-file from SFTP server
Slava Knyazev
2) Pouvez-vous sftpà différents utilisateurs? 3) À quoi ressemble sshd_configle serveur? 4) À quoi ressemble votre ~/.bashrcapparence?
Jakuje
@Jakuje Same 2) Non. Même erreur pour tous les utilisateurs. 3) pastebin.com/raw/ujNk3fVR 4) bashrc n'a rien de pertinent mais ici: pastebin.com/raw/mUD3DWmG
Slava Knyazev
Ce que vous obtenez which sftp-server. Le sous-système devrait l'être Subsystem sftp /usr/lib/openssh/sftp-server. Avez-vous sftp-serverinstallé? apt-get install openssh-sftp-server.
Jakuje

Réponses:

5

Votre Subsystemvaleur sshd_configest incorrecte.

Ce devrait être Subsystem sftp /usr/lib/openssh/sftp-serverou internal-sftp. Essayez de modifier le /etc/ssh/sshd_configà cette valeur, redémarrez le service ssh et réessayez.

Jakuje
la source
5

Vieille question, mais la première qui se pose pour ce problème.

Mon problème était que le serveur nécessitait une authentification par clé, mais j'exécutais la commande en utilisant sudoet en spécifiant -o IdentityFile=~/.ssh/id_rsa, ce qui signifiait que la ~racine était étendue au domicile de root, pas au mien.

Spécifier le chemin complet a fonctionné, et j'imagine que l'utilisation l' $HOMEaurait aussi (car il se serait développé plus tôt).

BlueDrink9
la source
Merci, a pu monter avec cette astuce.
Bemmu
0

Si vous pouvez connecter l'hôte via ssh seul:

ssh xxx.xxx.xxx.xxx

Vous pouvez être invité à enregistrer la clé, vous devez taper OUI, pas seulement un Y. Il vous sera alors demandé de saisir le nom d'utilisateur et le mot de passe de l'utilisateur sur cette machine distante.

Utilisez celui avec lequel vous essayez de faire sshfs, postez vos résultats.

Si vous obtenez une connexion refusée, je suppose que vous n'avez pas installé SSH sur l'ordinateur distant. Open ssh peut être installé avec cette commande, exécutée sur l'ordinateur distant:

sudo apt install openssh-server
Christopher Angulo-Bertram
la source
1
Oui, je suis capable de le faire. "La même erreur se produit si je SSH dans le système [..]", impliquait-il. Le serveur est configuré correctement pour autant que je sache
Slava Knyazev
OK, je peux manquer de lire votre commentaire, si vous avez réussi à vous connecter avec ssh, ou comme je l'ai lu ici: "La même erreur se produit si je SSH dans le système [..]"
Christopher Angulo-Bertram,
Je peux y aller très bien
Slava Knyazev
OK, en regardant votre ligne de commande, vous avez peut-être un espace supplémentaire? J'ai trouvé celui-ci en ligne je vous enverrai le lien. sshfs <username> @ <ipaddress>: / remotepath ~ / remoteserv Je l'ai trouvé ici: howtogeek.com/howto/ubuntu/… Il y a un tas d'autres instructions mais dans votre question d'origine votre commande semble avoir un espace supplémentaire
Christopher Angulo-Bertram
Je ne vois pas non plus où vous vous connectez à votre système local en tant que répertoire. Votre code mon code à suivre: sshfs [email protected]: / testfo
Christopher Angulo-Bertram
0

Je ne sais pas si cela aide, mais j'ai eu un problème similaire

remote host has disconnected

et après quelques recherches et recherches sur Google, j'ai réalisé qu'en fait, je connectais ssh via un port différent.

Ainsi, par exemple, je devais me connecter via ssh (exemple, en supposant le numéro de port 1234):

ssh [email protected] -p 1234

au lieu de ssh standard lorsque le numéro de port est 22. Donc, le même devait être utilisé pour la connexion sshfs:

sshfs [email protected]:/ ~/testfolder -p 1234

Cela a résolu mon problème.

imiejego44
la source
0

Une autre cause qui m'est arrivée est que le dropbearmultibinaire lui-même n'avait pas la chaîne /usr/libexec/sftp-serverqui s'est perdue quelque part autour de la construction 33600 de DD-WRT. Vérifiez si ledit binaire mentionne ce fichier ou il ne fonctionnera pas même s'il est présent. J'ai dû utiliser un binaire de la build 33525 et créer un lanceur qui tue le dropbear normal du buggy, puis exécute celui-ci. Vous créez un lien symbolique appelé dropbearpointant vers dropbearmulti. Vous arrêtez l'actuel avec stopservice sshd, puis exécutez celui qui fonctionne. Voyez à psquoi ressemblent les paramètres appropriés. Il est préférable de l'avoir sur jffs (ou de le décompresser dans / tmp) afin que vous puissiez toujours utiliser umountn'importe quel lecteur.

Zdenek
la source