Nastavitev in preverjanje SFTP z preverjanjem pristnosti javnega ključa v odjemalcih in strežnikih

Datum ustvarjanja strani :

okolje

Windows
  • Windows 10 Pro
  • Windows Server 2019
  • Windows 7
  • Windows Server 2012 R2
OpenSSH
  • 7.7p1
  • 8.1p1 - Beta

- Deluje v drugih različicah, vendar je nepotrjenega

Sprva

Nazadnje ste nastavili strežnik SFTP, da preverite, ali preverjanje pristnosti gesla omogoča pošiljanje in prejemanje datotek. Tokrat SFTP pošilja in sprejema datoteke z uporabo preverjanja pristnosti javnega ključa.

Priprava vnaprej

  • Odjemalec ima nameščen odjemalec OpenSSH
  • Strežnik ima nameščen strežnik OpenSSH.
  • Strežnik zažene storitev OpenSSH in vrata 22 so prosta.

Ustvarjanje zasebnih in javnih ključev v odjemalcu

Prijavite se v odjemalca. Na strežniški strani je mogoče ustvariti tudi zasebne in javne ključe, zasebni ključ pa bo odjemalec, javni ključ pa strežnik. Ustvarite na strani odjemalca.

Zaženite PowerShell s skrbniškimi pravicami.

image

Ustvarite datoteko, pojdite v katero koli mapo z ukazom CD in vnesite ta ukaz:

ssh-keygen -t rsa -f id_rsa

V ključ lahko postavite geslo (geslo), zato jo po potrebi postavite.

image

Če je ključ uspešno ustvarjen, so javni in zasebni ključi ustvarjeni v mapi na naslednji način: "id_rsa" je zasebni ključ in "id_rsa.pub" je javni ključ.

image

image

Vnašanje javnega ključa v strežnik

Prijavite se v Windows s svojim računom SFTP za strežnik.

Ustvarjeni javni ključ »id_rsa.pub« postavite v to mapo na strežniku. 「. če nimate mape »ssh«, jo ustvarite. Spremenite tudi ime datoteke v »authorized_keys«. (Zamenjajte <> z uporabniškim imenom, ki se prijavite s SFTP.)

  • C:\Uporabniki\< uporabniško ime>\.ssh

image

Upoštevajte, da morajo do te datoteke dostopati samo uporabniki z »skrbniki« ali uporabniki SFTP. Povezave Sftp vedno ne uspejo, če imajo drugi uporabniki dostop. Na primer, NG ima skupino uporabnikov ali Vsi, ki so bili prilo eni dovoljenj.

V tem primeru, ". Pravice dostopa mape »ssh« so »Group:SYSTEM«, »Group: Administrators« in »Uporabnik: sftptest«. Če dovoljenja ne morete odstraniti, onemogočite dedovanje dovoljenj.

Omogoči preverjanje pristnosti javnega ključa v strežniku

Prijavite se v strežnik z uporabniki dovoljenj skrbnikov in odprite te mape:

  • C:\ProgramData\ssh

Ker obstaja datoteka z imenom "sshd_config", jo kopirajte in spremenite ime datoteke v »sshd_config_default« in nastavite varnostno kopijo.

image

Odprite »sshd_config« v urejevalniku besedila, začetem z skrbniškimi pravicami.

Če želite omogočiti preverjanje pristnosti javnega ključa, ga spremenite na naslednji način:

#PubkeyAuthentication yes

↓↓↓

PubkeyAuthentication yes

Preverjanje pristnosti gesla je privzeto omogočeno, zato ga spremenite, če jo želite onemogočiti.

#PasswordAuthentication yes

↓↓↓

PasswordAuthentication no

Za vsak račun SFTP želim oddati javni ključ, zato bom komentiral naslednjo vrstico:

Match Group administrators
       AuthorizedKeysFile __PROGRAMDATA__/ssh/administrators_authorized_keys

↓↓↓

#Match Group administrators
#       AuthorizedKeysFile __PROGRAMDATA__/ssh/administrators_authorized_keys

Če želite določiti korenski imenik za vsak račun SFTP, dodajte to vrstico: Odvisno od tega, ali določite to ali ne, ko določite pot mape od odjemalca, se lahko spremeni v format »C:\xxxxx« ali »/xxxxx«.

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

primer

Match User TestUser
       ChrootDirectory C:\Users\TestUser

Ko shranite sshd_config, znova zaženite strežnik OpenSSH.

image

Pošiljanje in prejemanje datotek od odjemalca z preverjanjem pristnosti javnega ključa

V mapo, ki je dostopna le uporabniku, ki izvaja SFTP, postavite zasebni ključ »id_rsa« , ki ste ga ustvarili pred povezovanjem s SFTP. Upoštevajte, da povezave SFTP ne bodo uspele, če bodo v mapo, do ki jo lahko dostopajo drugi uporabniki. Še posebej, če mapa ima dovoljenja za skupine Uporabnikov in vsi, je NG.

V bistvu je priporočljivo, ker se bo samodejno sklicevanje na pot, če jo postavite v naslednjo mapo.

  • C:\Uporabniki\< uporabniško ime>\.ssh

Stranka je ". Pravice dostopa mape "ssh" so "Group:SYSTEM", "Group: Administrators", "User: < Login user >".

Če želite dostopati do SFTP z zasebnim ključem, vnesite ukaz na naslednji način (zamenjajte <>): Če ste nastavili geslo, vnesite tudi besedno zvezo.

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

image

Če se uspešno prijavite, boste preklopiti na prikaz prijavljenega uporabnika.

image

Preverite lahko tudi, ali se lahko prijavite z ukazom dir.

image

Zdaj, ko ste pripravili datoteko z imenom "test3.txt", pošljite datoteko z ukazom put.

put c:\temp\test3.txt

image

Če pogledate mapo C na strani strežnika C:\Users\sftptest, lahko vidite, da se .txt datoteke test3.

image

Poskusi priti od stranke.

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

image

Uspelo mi je potrditi, da je dosje uspel dobiti.

image

Povzetek

SFTP vam je s preverjanjem pristnosti javnega ključa lahko pošiljal in prejemal datoteke. S pomočjo javnega ključa stran strežnika ne bo mogla vedeti gesla. Omogoča varnejšo izmenjavo datotek kot preverjanje pristnosti gesla.