SFTP iestatīšana un pārbaude, izmantojot publiskās atslēgas autentifikāciju klientos un serveros

Lapas izveides datums :

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.

image

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.

image

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.

image

image

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

image

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

image

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.

image

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

image

Ja veiksmīgi pieteiksieties, jūs tiksiet pārslēgts uz pieteiktā lietotāja parādīšanu.

image

Varat arī pārbaudīt, vai varat pieteikties, izmantojot dir komandu.

image

Tagad, kad esat sagatavojis failu ar nosaukumu "test3.txt", nosūtiet failu ar komandu izlikt.

put c:\temp\test3.txt

image

Ja paskatās uz servera puses mapi C:\Users\sftptest, var redzēt, ka tiek sūtīts fails test3.txt.

image

Mēģiniet iegūt no klienta.

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

image

Es varēju apstiprināt, ka lietu varēja iegūt.

image

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.