No se puede SSH a Windows con autenticación de clave pública

No se puede SSH a Windows con autenticación de clave pública

Estoy intentando conectarme a Windows a través de SSH con autenticación de clave pública. Pero aparentemente no funciona.

Esto es lo que he hecho.

Instalé y activé SSH en Windows.

Get-WindowsCapability -Online | ? Name -like 'OpenSSH*'
Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0

Generé archivos de clave pública y los envié a la máquina remota para realizar ssh.

ssh-keygen

Cambié/agregué las siguientes líneas en el archivo de configuración SSH "C:\ProgramData\ssh\sshd_config"

PermitRootLogin yes
AllowUsers otheruser
PubkeyAuthentication yes
PasswordAuthentication no

Reinicié el servidor ssh para aplicar los cambios de configuración.

net stop sshd ; net start sshd

Intenté realizar ssh desde la máquina remota (también Windows, PowerShell) a la máquina con Windows.

ssh -i C:\_sync_\id_rsa [email protected]

y fracasó.

> ssh -i C:\_sync_\id_rsa [email protected]
[email protected]: Permission denied (publickey,keyboard-interactive).

Entonces, ¿cómo puedo solucionar este problema de autenticación de clave pública SSH?

Respuesta1

Enviar SSH a Windows es una especie de pérdida de tiempo. Su documentohttps://docs.microsoft.com/en-us/windows-server/administration/openssh/openssh_keymanagementEsta anticuadohttps://github.com/MicrosoftDocs/windowsserverdocs/issues/4598y ya no funciona, lamentablemente.

Si tiene Windows 10, le sugiero que use WSL Linux en su Windows 10. Es básicamente una máquina Linux en Windows, pero también está disponible para la función SSH. WSL SSHing funciona perfectamente tan bien como usted puede hacerlo en una máquina Linux.

Respuesta2

Windows parece requerir diferentes authorized_keysarchivos dependiendo de si es un usuario estándar o administrativo.

A partir del 15 de abril de 2024, hay una mención en OpenSSH para Windows.documentaciónque dice (paraAdministrativousuarios):

El contenido de su clave pública (.ssh\id_ed25519.pub) debe colocarse en el servidor en un archivo de texto llamado Administrators_authorized_keys en C:\ProgramData\ssh\.

información relacionada