0

I'm trying to connect to Windows through SSH with public key authentication. But apparently not working.

Here are what I have done.

I installed and activated the SSH on the windows.

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

I generated public key files and sent to the remote machine to ssh from.

ssh-keygen

I changed/added following lines in the SSH setting file "C:\ProgramData\ssh\sshd_config"

PermitRootLogin yes
AllowUsers otheruser
PubkeyAuthentication yes
PasswordAuthentication no

I restarted the ssh server to apply the setting changes.

net stop sshd ; net start sshd

I tried to ssh from the remote machine (also windows, powershell) to the windows machine

ssh -i C:\_sync_\id_rsa tmp@192.168.0.102

and failed.

> ssh -i C:\_sync_\id_rsa tmp@192.168.0.102
tmp@192.168.0.102: Permission denied (publickey,keyboard-interactive).

So, how can I solve this SSH public key authentication issue?

ー PupSoZeyDe ー
  • 145
  • 1
  • 2
  • 11

2 Answers2

0

SSHing to Windows is kind of waste of time. Their document https://docs.microsoft.com/en-us/windows-server/administration/openssh/openssh_keymanagement is outdated https://github.com/MicrosoftDocs/windowsserverdocs/issues/4598 and no longer works, unfortunately.

If you're on Windows 10, I suggest using WSL Linux on your Windows 10. It's basically Linux machine on Windows, but also available for the SSH feature. The WSL SSHing does work perfectly as well as you can do on a Linux machine.

-1

Windows seems to require different authorized_keys files depending on if you are a standard or administrative user.

As of April 15, 2024, there's a mention on the OpenSSH for Windows documentation that says (for Administrative users):

The contents of your public key (.ssh\id_ed25519.pub) needs to be placed on the server into a text file called administrators_authorized_keys in C:\ProgramData\ssh\