Configurar i verificar SFTP amb autenticació de claus públiques en clients i servidors
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.
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.
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.
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
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.
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.
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 <ユーザー名>@<サーバー名>
Si inicieu la sessió correctament, se us canviarà a la visualització de l'usuari connectat.
També podeu comprovar que podeu iniciar la sessió amb l'ordre dir.
Ara que heu preparat un fitxer anomenat "test3.txt", envieu el fitxer amb l'ordre put.
put c:\temp\test3.txt
Si mireu la carpeta C:\Usuaris\sftptest del costat del servidor, podeu veure que s'està enviant el fitxer de prova3.txt.
Proveu d'arribar del client.
get test3.txt c:\temp\test4.txt
He pogut confirmar que l'expedient s'ha pogut obtenir.
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.