Configurar i verificar SFTP amb autenticació de claus públiques en clients i servidors

Data de creació de la pàgina :

entorn

Windows
  • Windows 10 Pro
  • Windows Server 2019
  • Windows 7
  • Windows Server 2012 R2
OpenSSH
  • 7.7p1
  • 8.1p1 - Beta

Funciona en altres versions, però no està confirmat

Al principi

L'última vegada, heu configurat un servidor SFTP per verificar que l'autenticació de contrasenya us permet enviar i rebre fitxers. Aquesta vegada, sftp envia i rep fitxers mitjançant autenticació de clau pública.

Preparació prèvia

  • El client té instal·lat un client OpenSSH
  • El servidor té instal·lat un servidor OpenSSH.
  • El servidor inicia el servei OpenSSH i el port 22 s'allibera.

Crear claus privades i públiques en el client

Iniciar sessió al client. També es poden crear claus privades i públiques al costat del servidor, però la clau privada serà el client i la clau pública la tindrà el servidor. Crear al costat del client.

Inicia powerShell amb els drets d'administrador.

image

Creeu un fitxer, aneu a qualsevol carpeta amb l'ordre CD i escriviu l'ordre següent:

ssh-keygen -t rsa -f id_rsa

Podeu posar una frase de contrasenya (contrasenya) a la clau, així que si us plau, poseu-la si cal.

image

Si la clau es genera correctament, les claus públiques i privades es creen a la carpeta de la següent manera: "id_rsa" és la clau privada i "id_rsa.pub" és la clau pública.

image

image

Col·locar una clau pública al servidor

Inicieu la sessió al Windows amb el vostre compte SFTP per al servidor.

Col·loqueu la clau pública creada "id_rsa.pub" a la carpeta següent del servidor. 「. Si no teniu una carpeta "ssh", creeu-ne una. A més, canvieu el nom del fitxer per "authorized_keys". (Substituïu el <> pel nom d'usuari que inicieu la sessió amb SFTP.)

  • C:\Usuaris\< nom d'usuari>\.ssh

image

Tingueu en compte que només els usuaris amb "administradors" o usuaris de SFTP han de tenir accés a aquest fitxer. Les connexions Sftp sempre fallen si altres usuaris hi tenen accés. Per exemple, NG té un grup d'Usuaris o Tothom afegit al permís.

En aquest exemple". Els drets d'accés de la carpeta "ssh" són "Group:SYSTEM", "Group: Administrators" i "User: sftptest". Si no podeu suprimir un permís, desactiveu l'herència de permisos.

Habilita l'autenticació de claus públiques al servidor

Inicieu la sessió al servidor amb els usuaris que permisos d'administradors i obriu les carpetes següents:

  • C:\ProgramData\ssh

Com que hi ha un fitxer anomenat "sshd_config", copieu-lo i canvieu el nom del fitxer a "sshd_config_default" i configureu una còpia de seguretat.

image

Obre "sshd_config" a l'editor de text llançat amb privilegis d'administrador.

Per habilitar l'autenticació de claus públiques, canvieu-la de la manera següent:

#PubkeyAuthentication yes

↓↓↓

PubkeyAuthentication yes

A més, l'autenticació de contrasenya està habilitada per defecte, de manera que si voleu desactivar-la, canvieu-la de la següent manera.

#PasswordAuthentication yes

↓↓↓

PasswordAuthentication no

Vull col·locar una clau pública per a cada compte SFTP, així que comentaré la següent línia:

Match Group administrators
       AuthorizedKeysFile __PROGRAMDATA__/ssh/administrators_authorized_keys

↓↓↓

#Match Group administrators
#       AuthorizedKeysFile __PROGRAMDATA__/ssh/administrators_authorized_keys

Si voleu especificar el directori arrel de cada compte SFTP, afegiu la línia següent: Depenent de si especifiqueu això o no, quan especifiqueu un camí de carpeta del client, pot canviar a format "C:\xxxxx" o "/xxxxx".

Match User <ユーザー名>
       ChrootDirectory <フォルダパス>

exemple

Match User TestUser
       ChrootDirectory C:\Users\TestUser

Després de desar sshd_config, reinicieu el servidor OpenSSH.

image

Enviar i rebre fitxers de clients amb autenticació de claus públiques

Col·loqueu la clau privada "id_rsa" que heu creat abans de connectar-vos amb SFTP en una carpeta que només sigui accessible per a l'usuari que executa SFTP. Tingueu en compte que les connexions de popa fallaran si es col·loquen en una carpeta a la qual poden accedir altres usuaris. Especialment si la carpeta té permisos per als grups Usuaris i Tothom, és NG.

Bàsicament, es recomana perquè es referirà automàticament al camí si el poseu a la carpeta següent.

  • C:\Usuaris\< nom d'usuari>\.ssh

del client". Els drets d'accés de la carpeta "ssh" són "Group:SYSTEM", "Group: Administrators", "User: < Login user >".

Si voleu accedir a sftp utilitzant la clau privada, escriviu l'ordre de la manera següent (substituïu el <>): Si heu configurat una frase de contrasenya, introduïu també una frase de contrasenya.

sftp -i id_rsa <ユーザー名>@<サーバー名>

image

Si inicieu la sessió correctament, se us canviarà a la visualització de l'usuari connectat.

image

També podeu comprovar que podeu iniciar la sessió amb l'ordre dir.

image

Ara que heu preparat un fitxer anomenat "test3.txt", envieu el fitxer amb l'ordre put.

put c:\temp\test3.txt

image

Si mireu la carpeta C:\Usuaris\sftptest del costat del servidor, podeu veure que s'està enviant el fitxer de prova3.txt.

image

Proveu d'arribar del client.

get test3.txt c:\temp\test4.txt

image

He pogut confirmar que l'expedient s'ha pogut obtenir.

image

Resum

Heu pogut enviar i rebre fitxers per SFTP mitjançant autenticació de clau pública. Mitjançant l'ús d'una clau pública, el costat del servidor no podrà conèixer la contrasenya. Permet intercanviar arxius de manera més segura que l'autenticació de contrasenya.