Az SFTP beállítása és ellenőrzése nyilvános kulcsú hitelesítéssel az ügyfeleken és kiszolgálókon

Oldal létrehozásának dátuma :

környezet

Windows
  • Windows 10 Pro
  • Windows Server 2019
  • Windows 7
  • Windows Server 2012 R2
OpenSSH
  • 7.7p1
  • 8.1p1 - Béta

※ Más verziókban is működik, de meg nem erősített

Először

Legutóbb egy SFTP-kiszolgálót állított be annak ellenőrzésére, hogy a jelszóhitelesítés lehetővé teszi-e fájlok küldését és fogadását. Ezúttal az sftp nyilvános kulcsú hitelesítéssel küld és fogad fájlokat.

Előzetes előkészítés

  • Az ügyfél egy OpenSSH-ügyféllel van telepítve
  • A kiszolgáló telepítve van egy OpenSSH-kiszolgálóval.
  • A kiszolgáló elindítja az OpenSSH szolgáltatást, és a 22-es port felszabadul.

Privát és nyilvános kulcsok létrehozása az ügyfélben

Jelentkezzen be az ügyfélbe. A privát és nyilvános kulcsok a kiszolgáló oldalán is létrehozhatók, de a privát kulcs az ügyfél lesz, és a nyilvános kulcsot a kiszolgáló fogja tartani. Létrehozás az ügyféloldalon.

Indítsa el a PowerShellt rendszergazdai jogokkal.

image

Hozzon létre egy fájlt, lépjen bármelyik mappába a cd paranccsal, és írja be a következő parancsot:

ssh-keygen -t rsa -f id_rsa

A kulcsba jelszó (jelszó) helyezhető el, ezért szükség esetén tegye meg.

image

Ha a kulcs létrehozása sikeresen létrejön, a nyilvános és a privát kulcsok a következőképpen jönnek létre a mappában: A "id_rsa" a privát kulcs, és a "id_rsa.pub" a nyilvános kulcs.

image

image

Nyilvános kulcs helye a kiszolgálón

Jelentkezzen be a Windows rendszerbe a kiszolgáló SFTP-fiókjával.

Helyezze a létrehozott "id_rsa.pub" nyilvános kulcsot a kiszolgáló következő mappájába. 「. ha nincs "ssh" mappája, hozzon létre egyet. Módosítsa a fájl nevét "authorized_keys" -re is. (Cserélje le a <> az SFTP-vel bejelentkezett felhasználónévre.)

  • C:\Felhasználók\< felhasználónév>\.ssh

image

Vegye figyelembe, hogy csak a "rendszergazdákkal" vagy SFTP-felhasználókkal rendelkező felhasználók férhetnek hozzá ehhez a fájlhoz. Az Sftp-kapcsolatok mindig meghiúsulnak, ha más felhasználók hozzáférnek. Az NG-nek például van egy felhasználói csoportja vagy mindenki, aki hozzá van fűzve az engedélyhez.

Ebben a példában: ". Az "ssh" mappa hozzáférési jogai a "Group:SYSTEM", a "Csoport: Rendszergazdák" és a "Felhasználó: sftptest". Ha nem tud eltávolítani egy engedélyt, tiltsa le az engedélyöröklést.

Nyilvános kulcsú hitelesítés engedélyezése a kiszolgálón

Jelentkezzen be a kiszolgálóra rendszergazdai engedélyekkel a felhasználók számára, majd nyissa meg a következő mappákat:

  • C:\ProgramData\ssh

Mivel van egy "sshd_config" nevű fájl, másolja azt, és módosítsa a fájl nevét "sshd_config_default" -re, és állítson be biztonsági másolatot.

image

Nyissa meg a "sshd_config" parancsot a rendszergazdai jogosultságokkal elindított szövegszerkesztőben.

A nyilvános kulcs hitelesítésének engedélyezéséhez módosítsa azt az alábbiak szerint:

#PubkeyAuthentication yes

↓↓↓

PubkeyAuthentication yes

A jelszóhitelesítés alapértelmezés szerint engedélyezve van, ezért ha le szeretné tiltani, módosítsa azt az alábbiak szerint.

#PasswordAuthentication yes

↓↓↓

PasswordAuthentication no

Minden SFTP-fiókhoz nyilvános kulcsot szeretnék elhelyezni, ezért a következő sort kommentálom:

Match Group administrators
       AuthorizedKeysFile __PROGRAMDATA__/ssh/administrators_authorized_keys

↓↓↓

#Match Group administrators
#       AuthorizedKeysFile __PROGRAMDATA__/ssh/administrators_authorized_keys

Ha meg szeretné adni az egyes SFTP-fiókok gyökérkönyvtárát, adja hozzá a következő sort: Attól függően, hogy ezt megadja-e vagy sem, amikor mappa elérési útját adja meg az ügyféltől, az "C:\xxxxx" vagy "/xxxxx" formátumra változhat.

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

példa

Match User TestUser
       ChrootDirectory C:\Users\TestUser

A sshd_config mentése után indítsa újra az OpenSSH-kiszolgálót.

image

Fájlok küldése és fogadása nyilvános kulcsú hitelesítéssel rendelkező ügyfelektől

Helyezze az SFTP-hez való csatlakozás előtt létrehozott "id_rsa" kulcsát egy olyan mappába, amely csak az SFTP-t futtató felhasználó számára érhető el. Vegye figyelembe, hogy az sftp-kapcsolatok sikertelenek lesznek, ha olyan mappába helyezik, amelyet más felhasználók is elérhetnek. Különösen, ha a mappa rendelkezik engedélyekkel a Felhasználók és mindenki csoportok számára, akkor NG.

Alapvetően ajánlott, mert automatikusan hivatkozik az elérési útra, ha a következő mappába helyezi.

  • C:\Felhasználók\< felhasználónév>\.ssh

Az ügyfél ". Az "ssh" mappa hozzáférési jogai a következők: "Group:SYSTEM", "Csoport: Rendszergazdák", "Felhasználó: < Bejelentkezési felhasználói >".

Ha a sftp-t a privát kulccsal szeretné elérni, írja be a parancsot a következőképpen (cserélje le a <>): Ha beállított egy jelszóval, adjon meg egy jelszóval is.

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

image

Ha sikeresen jelentkezik be, a bejelentkezett felhasználó megjelenítésére vált.

image

Azt is ellenőrizheti, hogy be tud-e jelentkezni a dir paranccsal.

image

Most, hogy elkészítette a "test3.txt" nevű fájlt, küldje el a fájlt az put paranccsal.

put c:\temp\test3.txt

image

Ha megnézi a kiszolgálóoldali C:\Users\sftptest mappát, láthatja, hogy a test3.txt fájl elküldésre kerül.

image

Próbáljon meg eljutni az ügyféltől.

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

image

Meg tudtam erősíteni, hogy az aktát sikerült megszerezni.

image

Összefoglalás

Nyilvános kulcsú hitelesítéssel küldhetett és fogadhatott fájlokat az SFTP-től. Nyilvános kulcs használatával a kiszolgálói oldal nem fogja tudni a jelszót. Ez lehetővé teszi a fájlok biztonságosabb cseréjét, mint a jelszóhitelesítés.