SFTP iestatīšana un pārbaude, izmantojot publiskās atslēgas autentifikāciju klientos un serveros
vide
- Windows
-
- Windows 10 Pro
- Windows Server 2019
- Windows 7
- Windows Server 2012 R2
- OpenSSH
-
- 7.7p1
- 8.1p1 - Beta
※ Tas darbojas citās versijās, bet tas nav apstiprināts
Sākumā
Pēdējo reizi iestatiet SFTP serveri, lai pārbaudītu, vai paroles autentifikācija ļauj nosūtīt un saņemt failus. Šoreiz sftp sūta un saņem failus, izmantojot publiskās atslēgas autentifikāciju.
Sagatavošanās iepriekš
- Klientam ir instalēts OpenSSH klients
- Serverī ir instalēts OpenSSH serveris.
- Serveris startē OpenSSH pakalpojumu un ports 22 tiek atbrīvots.
Privāto un publisko atslēgu izveide klientā
Piesakieties klientā. Servera pusē var izveidot arī privātas un publiskas atslēgas, bet privātā atslēga būs klients un publiskā atslēga būs serveris. Izveidot klienta pusē.
Startējiet PowerShell ar administratora tiesībām.
Izveidojiet failu, dodieties uz jebkuru mapi ar komandu cd un ierakstiet šādu komandu:
ssh-keygen -t rsa -f id_rsa
Jūs varat ievietot ieejas frāzi (paroli) atslēgā, tāpēc, lūdzu, ievietojiet to, ja nepieciešams.
Ja atslēga ir veiksmīgi ģenerēta, publiskās un privātās atslēgas mapē tiek veidotas šādi: "id_rsa" ir privātā atslēga, un "id_rsa.pub" ir publiskā atslēga.
Publiskās atslēgas novietojiet serverī
Piesakieties sistēmā Windows, izmantojot savu servera SFTP kontu.
Lūdzu, ievietojiet izveidoto publisko atslēgu "id_rsa.pub" šajā servera mapē. 「. ja jums nav mapes "ssh", lūdzu, izveidojiet to. Mainiet faila nosaukumu uz "authorized_keys". (Aizstājiet <> ar lietotājvārdu, kurā piesakāties, ar SFTP.)
- C:\Users\< lietotājvārds>\.ssh
Ņemiet vērā, ka šim failam vajadzētu būt piekļuvei tikai lietotājiem ar "administratoriem" vai SFTP lietotājiem. Sftp savienojumi vienmēr neizdodas, ja piekļuve ir citiem lietotājiem. Piemēram, NG ir atļaujai pievienota lietotāju grupa vai visi.
Šajā piemērā ". Mapes "ssh" piekļuves tiesības ir "Grupa:SISTĒMA", "Grupa: administratori" un "Lietotājs: sftptest". Ja nevarat noņemt atļauju, atspējojiet atļauju pārmantošanu.
Publiskās atslēgas autentifikācijas iespējošana serverī
Piesakieties serverī ar administratoriem, kas atļaujas lietotājiem, un pēc tam atveriet šādas mapes:
- C:\ProgramData\ssh
Tā kā ir fails ar nosaukumu "sshd_config", kopējiet to un mainiet faila nosaukumu uz "sshd_config_default" un iestatiet dublējumu.
Atveriet "sshd_config" teksta redaktorā, kas palaists ar administratora tiesībām.
Lai iespējotu publiskās atslēgas autentifikāciju, mainiet to šādi:
#PubkeyAuthentication yes
↓↓↓
PubkeyAuthentication yes
Arī paroles autentifikācija ir iespējota pēc noklusējuma, tāpēc, ja vēlaties to atspējot, mainiet to šādi.
#PasswordAuthentication yes
↓↓↓
PasswordAuthentication no
Es vēlos ievietot publisko atslēgu katram SFTP kontam, tāpēc es komentēšu šādu rindu:
Match Group administrators
AuthorizedKeysFile __PROGRAMDATA__/ssh/administrators_authorized_keys
↓↓↓
#Match Group administrators
# AuthorizedKeysFile __PROGRAMDATA__/ssh/administrators_authorized_keys
Ja vēlaties norādīt saknes direktoriju katram SFTP kontam, pievienojiet šādu rindu: Atkarībā no tā, vai norādāt šo vai nē, norādot mapes ceļu no klienta, tas var mainīties uz "C:\xxxxx" vai "/xxxxx" formātu.
Match User <ユーザー名>
ChrootDirectory <フォルダパス>
piemērs
Match User TestUser
ChrootDirectory C:\Users\TestUser
Pēc sshd_config saglabāšanas restartējiet OpenSSH serveri.
Sūtīt un saņemt failus no klientiem ar publiskās atslēgas autentifikāciju
Novietojiet izveidoto privāto atslēgu "id_rsa", pirms izveidojat savienojumu ar SFTP mapē, kas ir pieejama tikai lietotājam, kurš darbojas SFTP. Ņemiet vērā, ka sftp savienojumi neizdosies, ja tos ievietos mapē, kurai var piekļūt citi lietotāji. It īpaši, ja mapei ir atļaujas grupām Lietotāji un Visi, tā ir NG.
Būtībā tas ir ieteicams, jo tas automātiski atsauksies uz ceļu, ja to ievietosiet nākamajā mapē.
- C:\Users\< lietotājvārds>\.ssh
Klienta ". Mapes "ssh" piekļuves tiesības ir "Grupa:SISTĒMA", "Grupa: Administratori", "Lietotājs: < Pieteikšanās lietotāja >".
Ja vēlaties piekļūt sftp, izmantojot privāto atslēgu, ierakstiet komandu šādi (nomainiet <>): Ja esat iestatījis ieejas frāzi, ievadiet arī ieejas frāzi.
sftp -i id_rsa <ユーザー名>@<サーバー名>
Ja veiksmīgi pieteiksieties, jūs tiksiet pārslēgts uz pieteiktā lietotāja parādīšanu.
Varat arī pārbaudīt, vai varat pieteikties, izmantojot dir komandu.
Tagad, kad esat sagatavojis failu ar nosaukumu "test3.txt", nosūtiet failu ar komandu izlikt.
put c:\temp\test3.txt
Ja paskatās uz servera puses mapi C:\Users\sftptest, var redzēt, ka tiek sūtīts fails test3.txt.
Mēģiniet iegūt no klienta.
get test3.txt c:\temp\test4.txt
Es varēju apstiprināt, ka lietu varēja iegūt.
Kopsavilkuma
Jūs varējāt nosūtīt un saņemt failus ar SFTP, izmantojot publiskās atslēgas autentifikāciju. Izmantojot publisko atslēgu, servera puse nevarēs uzzināt paroli. Tas ļauj apmainīties ar failiem drošāk nekā paroles autentifikācija.