Utilicé esta guía para instalar OpenSSH desdeWinSCPsitio web.
Utilicé el msi
instalador que aparece en la página de github.https://github.com/PowerShell/Win32-OpenSSH/releases.
El servidor parece estar ejecutándose pero después de intentar iniciar sesión aparece:
---------------------------
Error
---------------------------
Connection has been unexpectedly closed. Server sent command exit status 1.
---------------------------
Cannot initialize SFTP protocol. Is the host running an SFTP server?
---------------------------
OK Reconnect Help
---------------------------
En la máquina del servidor parece haber un sshd ejecutándose y escuchando en el puerto 22 (copiado de TCPview):
Proceso | PID | Protocolo | Estado | Dirección local | Puerto Local | Dirección remota | Puerto remoto | Crear tiempo | Nombre del módulo |
---|---|---|---|---|---|---|---|---|---|
sshd.exe | 5844 | tcp | Escuchar | 0.0.0.0 | 22 | 0.0.0.0 | 0 | 19/08/2022 18:49:33 | sshd |
sshd.exe | 5844 | TCPv6 | Escuchar | :: | 22 | :: | 0 | 19/08/2022 18:49:33 | sshd |
No he cambiado el valor predeterminadosshd_config
Actualizar:
Usar PuTTY y el mismo nombre de usuario y contraseña funciona y puedo explorar directorios.
Aquí está PuTTY vs WinScp:
(Donde el rojo y el naranja son el nombre de usuario y el nombre de la máquina, respectivamente)
Las reglas de FW están definidas:
Respuesta1
El problema era que sftp-server.exe
no estaba PATH
. Agregar la ruta de instalación C:\Program Files\OpenSSH
y reiniciar el servicio Restart-Service sshd
resolvió el problema.
diagnosticé estableciendo
SyslogFacility LOCAL0
LogLevel DEBUG3
enC:\ProgramData\ssh\sshd_config
Y al notar que se quejaba de no encontrarlo.
subsystem: cannot stat sftp-server.exe: No such file or directory
Respuesta2
Para resolver el problema, abra la configuración del servidor SSH en Windows (generalmente ubicado en C:\ProgramData\ssh\sshd_config
).
Primero, reemplácelo sftp-server.exe
con la línea <absolute-path-to>/sftp-server.exe
.
Parece que la configuración PATH
es inútil por mi parte.
En segundo lugar, comente o elimine líneas que comiencen con ForceCommand
si existe.
Ayuda a resolver la mayoría de los errores desconocidos de los clientes SFTP. Sin embargo, existe el efecto secundario de que los clientes SSH utilizarán CMD como shell predeterminado.
Para usar PowerShell como shell predeterminado, edite la configuración del cliente SSH (generalmente ubicado en ~/.ssh/config
):
Host <host>
...
RemoteCommand powershell