Saate häälestada ja kontrollida SFTP-d avaliku võtme autentimisega klientides ja serverites.

Lehe loomise kuupäev :

keskkond

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

※ See töötab teistes versioonides, kuid see on kinnitamata

Alguses

Viimati seadistasite SFTP-serveri veendumaks, et parooli autentimine võimaldab teil faile saata ja vastu võtta. Seekord saadab ja võtab sftp vastu faile avaliku võtme autentimise abil.

Eelnev ettevalmistamine

  • Kliendil on installitud OpenSSH klient
  • Serverisse on installitud OpenSSH server.
  • Server käivitab OpenSSH teenuse ja port 22 vabastatakse.

Era- ja avalike võtmete loomine kliendis

Logige klienti sisse. Privaat- ja avalikke võtmeid saab luua ka serveri poolel, kuid privaatvõti on klient ja avalik võti jääb serverile. Saate luua kliendi poolel.

Käivitage PowerShell administraatoriõigustega.

image

Looge fail, minge suvalisse cd-käsuga kausta ja tippige järgmine käsk:

ssh-keygen -t rsa -f id_rsa

Võite võtmesse panna parooli (parooli), nii et palun pange see vajadusel.

image

Kui võti on edukalt loodud, luuakse kaustas avalikud ja privaatvõtmed järgmiselt: "id_rsa" on privaatvõti ja "id_rsa.pub" on avalik võti.

image

image

Avaliku võtme paigutamine serverisse

Logige Windowsi sisse oma serveri SFTP-kontoga.

Palun asetage loodud avalik võti "id_rsa.pub" serveris järgmisse kausta. 「. kui teil pole kausta "ssh", looge see. Samuti muutke faili nimi "authorized_keys". (Asendage <> kasutajanimega, mille logite sisse SFTP-ga.)

  • C:\Kasutajad\< kasutajanimi>\.ssh

image

Pange tähele, et ainult "administraatorite" või SFTP kasutajatega kasutajatel peaks olema sellele failile juurdepääs. Sftp-ühendused nurjuvad alati, kui teistel kasutajatel on juurdepääs. Näiteks on NG-l loale lisatud kasutajate või kõigi rühm.

Selles näites" Kausta "ssh" pääsuõigused on "Group:SYSTEM", "Group: Administrators" ja "User: sftptest". Kui te ei saa õigust eemaldada, keelake õiguste pärimine.

Avaliku võtme autentimise lubamine serveris

Logige serverisse sisse administraatoriõiguste kasutajatega ja avage järgmised kaustad:

  • C:\ProgramData\ssh

Kuna on olemas fail nimega "sshd_config", kopeerige see ja muutke faili nimi "sshd_config_default" ja seadistage varukoopia.

image

Avage administraatoriõigustega käivitatud tekstiredaktoris "sshd_config".

Avaliku võtme autentimise lubamiseks muutke seda järgmiselt.

#PubkeyAuthentication yes

↓↓↓

PubkeyAuthentication yes

Samuti on parooli autentimine vaikimisi lubatud, nii et kui soovite selle keelata, muutke seda järgmiselt.

#PasswordAuthentication yes

↓↓↓

PasswordAuthentication no

Ma tahan paigutada avaliku võtme iga SFTP konto, nii et ma kommenteerin järgmist rida:

Match Group administrators
       AuthorizedKeysFile __PROGRAMDATA__/ssh/administrators_authorized_keys

↓↓↓

#Match Group administrators
#       AuthorizedKeysFile __PROGRAMDATA__/ssh/administrators_authorized_keys

Kui soovite määrata iga SFTP konto juurkataloogi, lisage järgmine rida: Sõltuvalt sellest, kas määrate selle või mitte, võib kliendi kaustatee määramisel muutuda vorminguks "C:\xxxxx" või "/xxxxx".

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

näide

Match User TestUser
       ChrootDirectory C:\Users\TestUser

Pärast sshd_config salvestamist taaskäivitage OpenSSH server.

image

Avaliku võtme autentimisega klientidelt failide saatmine ja vastuvõtmine

Asetage privaatvõti "id_rsa", mille lõite enne SFTP-ga ühenduse loomist kaustas, millele pääseb juurde ainult SFTP-d käitavale kasutajale. Pange tähele, et sftp-ühendused nurjuvad, kui need paigutatakse kausta, millele teised kasutajad juurde pääsevad. Eriti kui kaustal on kasutajate ja kõigi rühmade õigused, on see NG.

Põhimõtteliselt on see soovitatav, sest see viitab automaatselt teele, kui panete selle järgmisse kausta.

  • C:\Kasutajad\< kasutajanimi>\.ssh

Kliendi ". Kausta "ssh" pääsuõigused on "Group:SYSTEM", "Group: Administrators", "User: < Login user >".

Kui soovite sftp-le privaatvõtme abil juurde pääseda, tippige käsk järgmiselt (asendage <>): Kui olete seadistanud parooli, sisestage ka parool.

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

image

Kui logite edukalt sisse, aktiveeritakse teid sisselogitud kasutaja kuvamiseks.

image

Samuti saate kontrollida, kas saate dir-käsuga sisse logida.

image

Nüüd, kui olete ette valmistanud faili nimega "test3.txt", saatke fail käsuga put.

put c:\temp\test3.txt

image

Kui vaatate kausta Server-side C:\Users\sftptest, näete, et fail test3.txt saadetakse.

image

Proovi kliendilt saada.

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

image

Ma sain kinnitada, et toimikut oli võimalik saada.

image

Kokkuvõte

SFTP sai faile saata ja vastu võtta avaliku võtme autentimise abil. Avaliku võtme abil ei saa serveri pool parooli teada. See võimaldab teil faile turvalisemalt vahetada kui parooli autentimine.