Az SFTP beállítása és ellenőrzése nyilvános kulcsú hitelesítéssel az ügyfeleken és kiszolgálókon
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.
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.
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.
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
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.
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.
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 <ユーザー名>@<サーバー名>
Ha sikeresen jelentkezik be, a bejelentkezett felhasználó megjelenítésére vált.
Azt is ellenőrizheti, hogy be tud-e jelentkezni a dir paranccsal.
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
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.
Próbáljon meg eljutni az ügyféltől.
get test3.txt c:\temp\test4.txt
Meg tudtam erősíteni, hogy az aktát sikerült megszerezni.
Ö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.