Nastavitev in preverjanje SFTP z preverjanjem pristnosti javnega ključa v odjemalcih in strežnikih
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.
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.
Č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č.
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
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.
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.
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 <ユーザー名>@<サーバー名>
Če se uspešno prijavite, boste preklopiti na prikaz prijavljenega uporabnika.
Preverite lahko tudi, ali se lahko prijavite z ukazom dir.
Zdaj, ko ste pripravili datoteko z imenom "test3.txt", pošljite datoteko z ukazom put.
put c:\temp\test3.txt
Če pogledate mapo C na strani strežnika C:\Users\sftptest, lahko vidite, da se .txt datoteke test3.
Poskusi priti od stranke.
get test3.txt c:\temp\test4.txt
Uspelo mi je potrditi, da je dosje uspel dobiti.
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.