SFTP nustatymas ir tikrinimas naudojant viešojo rakto autentifikavimą klientams ir serveriams
Aplinkos
- Windows
-
- "Windows 10 Pro"
- "Windows Server 2019"
- "Windows 7"
- "Windows Server 2012 R2"
- OpenSSH
-
- 7.7p1
- 8.1p1 - Beta versija
※ Jis veikia kitose versijose, tačiau jis nepatvirtintas
Iš pradžių
Paskutinį kartą nustatėte SFTP serverį, kad patikrintumėte, ar slaptažodžio autentifikavimas leidžia siųsti ir gauti failus. Šį kartą SFTP siunčia ir gauna failus naudodama viešojo rakto autentifikavimą.
Pasiruošimas iš anksto
- Klientas turi įdiegtą OpenSSH klientą
- Serveryje įdiegtas OpenSSH serveris.
- Serveris paleidžia OpenSSH tarnybą ir prievadas 22 yra atlaisvintas.
Kurti asmeninius ir viešuosius raktus kliente
Prisijunkite prie kliento. Privatūs ir viešieji raktai taip pat gali būti sukurti serverio pusėje, tačiau privatusis raktas bus klientas, o viešąjį raktą laikys serveris. Kurti kliento pusėje.
Paleiskite "PowerShell" su administratoriaus teisėmis.
Sukurkite failą, eikite į bet kurį aplanką su cd komanda ir įveskite šią komandą:
ssh-keygen -t rsa -f id_rsa
Į raktą galite įdėti prieigos slaptažodį (slaptažodį), todėl, jei reikia, įdėkite jį.
Jei raktas sėkmingai sugeneruotas, viešieji ir privatieji raktai aplanke sukuriami taip: "id_rsa" yra privatus raktas, o "id_rsa.pub" yra viešasis raktas.
Viešojo rakto įdėdimo į serverį vieta
Prisijunkite prie "Windows" naudodami serverio SFTP abonementą.
Sukurtą viešąjį raktą "id_rsa.pub" įdėkite į šį serverio aplanką. 「. jei neturite aplanko "ssh", sukurkite jį. Be to, pakeiskite failo vardą į "authorized_keys". (Pakeiskite <> vartotojo vardu, prie kurio prisijungiate, SFTP.)
- C:\Users\< vartotojo vardas>\.ssh
Atkreipkite dėmesį, kad prieigą prie šio failo turėtų turėti tik vartotojai, turintys "administratorius" arba SFTP vartotojus. Sftp ryšiai visada nepavyksta, jei kiti vartotojai turi prieigą. Pavyzdžiui, NG turi vartotojų grupę arba Visi, pridedamą prie leidimo.
Šiame pavyzdyje ". Aplanko "ssh" prieigos teisės yra "Group:SYSTEM", "Group: Administrators" ir "User: sftptest". Jei negalite pašalinti teisės, išjunkite teisių paveldėjimą.
Įgalinti viešojo rakto autentifikavimą serveryje
Prisijunkite prie serverio naudodami administratorių teises vartotojams ir atidarykite šiuos aplankus:
- C:\ProgramData\ssh
Kadangi yra failas, vadinamas "sshd_config", nukopijuokite jį ir pakeiskite failo vardą į "sshd_config_default" ir nustatykite atsarginę kopiją.
Atidarykite "sshd_config" teksto rengyklėje, paleidžiamoje su administratoriaus teisėmis.
Norėdami įgalinti viešojo rakto autentifikavimą, pakeiskite jį taip:
#PubkeyAuthentication yes
↓↓↓
PubkeyAuthentication yes
Be to, slaptažodžio autentifikavimas įgalinamas pagal numatytuosius nustatymus, todėl, jei norite jį išjungti, pakeiskite jį taip.
#PasswordAuthentication yes
↓↓↓
PasswordAuthentication no
Noriu įdėti viešąjį raktą kiekvienai SFTP sąskaitai, todėl pakomentuosiu šią eilutę:
Match Group administrators
AuthorizedKeysFile __PROGRAMDATA__/ssh/administrators_authorized_keys
↓↓↓
#Match Group administrators
# AuthorizedKeysFile __PROGRAMDATA__/ssh/administrators_authorized_keys
Jei norite nurodyti kiekvieno SFTP abonemento šakninį katalogą, įtraukite šią eilutę: Atsižvelgiant į tai, ar nurodote tai, ar ne, kai nurodote aplanko kelią iš kliento, jis gali pasikeisti į "C:\xxxxx" arba "/xxxxx" formatą.
Match User <ユーザー名>
ChrootDirectory <フォルダパス>
pavyzdys
Match User TestUser
ChrootDirectory C:\Users\TestUser
Įrašę sshd_config, iš naujo paleiskite OpenSSH serverį.
Siųsti ir gauti failus iš klientų naudojant viešojo rakto autentifikavimą
Įdėkite privatųjį raktą "id_rsa", kurį sukūrėte prieš prisijungdami prie SFTP, į aplanką, kuris pasiekiamas tik vartotojui, kuris veikia SFTP. Atminkite, kad SFTP ryšiai nepavyks, jei jie bus patalpinti į aplanką, kurį gali pasiekti kiti vartotojai. Ypač jei aplankas turi teises vartotojams ir visiems grupėms, tai yra NG.
Iš esmės tai rekomenduojama, nes jis automatiškai nurodys kelią, jei jį įdėsite į šį aplanką.
- C:\Users\< vartotojo vardas>\.ssh
Kliento ". Aplanko "ssh" prieigos teisės yra "Group:SYSTEM", "Group: Administrators", "User: < Login user >".
Jei norite pasiekti SFTP naudodami privatųjį raktą, įveskite komandą taip (pakeiskite <>): Jei nustatėte prieigos slaptažodį, įveskite ir slaptafrazę.
sftp -i id_rsa <ユーザー名>@<サーバー名>
Jei prisijungsite sėkmingai, būsite perjungti į prisiregistravusio vartotojo rodymą.
Taip pat galite patikrinti, ar galite prisijungti naudodami komandą dir.
Dabar, kai paruošėte failą, pavadintą "test3.txt", siųskite failą su komanda Įdėti.
put c:\temp\test3.txt
Jei pažvelgsite į aplanką serveris C:\Users\sftptest, pamatysite, kad siunčiamas test3.txt failas.
Pabandykite gauti iš kliento.
get test3.txt c:\temp\test4.txt
Galėjau patvirtinti, kad bylą galima gauti.
Suvestinė
Jūs galėjote siųsti ir gauti failus SFTP naudodami viešojo rakto autentifikavimą. Naudojant viešąjį raktą, serverio pusė negalės žinoti slaptažodžio. Tai leidžia saugiau keistis failais nei slaptažodžio autentifikavimas.