SFTP nustatymas ir tikrinimas naudojant viešojo rakto autentifikavimą klientams ir serveriams

Puslapio sukūrimo data :

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.

image

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į.

image

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.

image

image

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

image

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ą.

image

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į.

image

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 <ユーザー名>@<サーバー名>

image

Jei prisijungsite sėkmingai, būsite perjungti į prisiregistravusio vartotojo rodymą.

image

Taip pat galite patikrinti, ar galite prisijungti naudodami komandą dir.

image

Dabar, kai paruošėte failą, pavadintą "test3.txt", siųskite failą su komanda Įdėti.

put c:\temp\test3.txt

image

Jei pažvelgsite į aplanką serveris C:\Users\sftptest, pamatysite, kad siunčiamas test3.txt failas.

image

Pabandykite gauti iš kliento.

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

image

Galėjau patvirtinti, kad bylą galima gauti.

image

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.