Come configurare correttamente l'authentication Win32-OpenSSH

Sto utilizzando PC senza privilegi di amministratore e devo configurare server SSH. Ho provato mobaSSH e anche freeSSHd ma entrambi richiedono privilegi di amministratore. Poi ho trovato Win32-OpenSSH che sembra che potrebbe funzionare finalmente. Per essere onesto non capisco perché tali servizi richiedono privilegi di amministratore perché ho impostato ad esempio l'ascolto di server FTP sulla port 21 senza problemi, ma OK, torna alla domanda.

Ho eseguito ssh-keygen.exe -A incluso in Win32-OpenSSH che ha creato i seguenti file nella directory Win32-OpenSSH :

 ssh_host_dsa_key ssh_host_dsa_key.pub ssh_host_ecdsa_key ssh_host_ecdsa_key.pub ssh_host_ed25519_key ssh_host_ed25519_key.pub ssh_host_rsa_key ssh_host_rsa_key.pub 

Poi ho iniziato sshd.exe . Il mio primo tentativo era collegarsi a putty.exe utilizzando: [email protected] . Ho usato le stesse credenziali che utilizzo per il login di Windows ma non funziona:

 Using username "USERNAME". [email protected]'s password: Access denied [email protected]'s password: 

Il secondo tentativo è stato quello di utilizzare puttygen.exe per convertire ssh_host_rsa_key in file *.ppk e caricare questo file con pageant.exe e utilizzare lo stesso passo del primo tentativo. Dopo di che il messaggio sshd.exe modificato come si può vedere ma il login ancora non funzionava:

 Using username "USERNAME". Authenticating with public key "imported-openssh-key" from agent Server refused public-key signature despite accepting key! [email protected]'s password: Access denied [email protected]'s password: 

Suppongo che il server sia installato correttamente e che il problema sia con l'authentication. Come impostare correttamente Win32-OpenSSH per essere in grado di accedere usando password o chiave?

Per l'authentication della password, utilizzare solo USERNAME . Il [email protected] non può funzionare.


Per eseguire l'authentication della chiave pubblica:

  • Creare la cartella .ssh con il file authorized_keys con la chiave pubblica nella cartella del profilo dell'account Windows (in genere in C:\Users\username\.ssh ).
  • Assegnare le autorizzazioni di lettura del server SSH alla cartella .ssh . Con l'impostazione predefinita, il server viene eseguito come servizio utilizzando un account locale "NT Service \ sshd". Per questo è necessario eseguire questo, come amministratore:

     icacls C:\users\username\.ssh /grant "NT Service\sshd":R /T 

    Anche se non si dispone di privilegi di amministratore, il server probabilmente non funziona neppure come servizio. Quindi l'installazione sarà diversa, in questo punto.


Per dettagli su entrambi, vedere la mia guida all'installazione di SFTP / SSH Server in Windows utilizzando OpenSSH . Per l'authentication di chiave pubblica, vedere anche Note di rilascio per Win32-OpenSSH v0.0.11.0 .