web-dev-qa-db-fra.com

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

J'essaie de monter une connexion sftpdans un dossier en utilisant sshfsavec 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étez la commande avec avec localhostname__. Cette commande fonctionnant également avec une autre machine, le problème se situe donc 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 répertoire ~/.ssh est la propriété de l’administrateur, car c’est une tentative de débogage pour un problème similaire.

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

Le problème 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. Si vous tentez d’obtenir SFTP, Received unexpected end-of-file from SFTP server

Le problème est non lié aux chaînes de sortie des scripts de login (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

Le paquet sftp-server est installé. (Sudo apt-get install openssh-sftp-server)

11
Slava Knyazev

Votre valeur Subsystem dans sshd_config est incorrecte.

Il devrait s'agir de Subsystem sftp /usr/lib/openssh/sftp-server ou internal-sftp. Essayez de modifier le /etc/ssh/sshd_config à cette valeur, redémarrez le service ssh et réessayez.

5
Jakuje

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

Mon problème était l'authentification de clé requise par le serveur, mais j'exécutais la commande en utilisant Sudo et en spécifiant -o IdentityFile=~/.ssh/id_rsa, ce qui signifie que ~ a été étendu à la racine de la racine, pas à la mienne.

Spécifier le chemin complet a fonctionné, et j'imagine que l’utilisation de $HOME l’aurait également été (car elle aurait été étendue plus tôt).

4
BlueDrink9

Vous obtiendrez cette erreur si le serveur distant exécute Dropbear plutôt que OpenSSH.

SSHFS utilise SFTP et Dropbear ne fournit pas SFTP. Ainsi, lorsque vous essayez de l'utiliser, le serveur Dropbear voit une demande relative à un sous-système qu'il ne comprend pas et interrompt la connexion.

De là: https://unix.stackexchange.com/questions/363540/mount-a-filesystem-using-sshfs-using-the-dropbear-server-on-yocto-firmware

1
calamari

Si vous êtes capable de connecter l'hôte via ssh par lui-même:

ssh xxx.xxx.xxx.xxx

Il se peut que vous soyez invité à enregistrer la clé. Vous devez taper OUI, pas seulement un Y. On vous demandera ensuite le nom d'utilisateur et le mot de passe de l'utilisateur sur cette machine distante.

Utilisez celui que vous essayez de faire avec sshfs, publiez vos résultats.

Si votre connexion est 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é sur l'ordinateur distant:

Sudo apt install openssh-server