Actualizar:

Actualizar:

Utilicé esta guía para instalar OpenSSH desdeWinSCPsitio web.

Utilicé el msiinstalador 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:

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:

reglas_firewall

Respuesta1

El problema era que sftp-server.exeno estaba PATH. Agregar la ruta de instalación C:\Program Files\OpenSSHy reiniciar el servicio Restart-Service sshdresolvió 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.execon la línea <absolute-path-to>/sftp-server.exe.

Parece que la configuración PATHes inútil por mi parte.


En segundo lugar, comente o elimine líneas que comiencen con ForceCommandsi 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

información relacionada