Saate häälestada ja kontrollida SFTP-d avaliku võtme autentimisega klientides ja serverites.
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.
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.
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.
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
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.
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.
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 <ユーザー名>@<サーバー名>
Kui logite edukalt sisse, aktiveeritakse teid sisselogitud kasutaja kuvamiseks.
Samuti saate kontrollida, kas saate dir-käsuga sisse logida.
Nüüd, kui olete ette valmistanud faili nimega "test3.txt", saatke fail käsuga put.
put c:\temp\test3.txt
Kui vaatate kausta Server-side C:\Users\sftptest, näete, et fail test3.txt saadetakse.
Proovi kliendilt saada.
get test3.txt c:\temp\test4.txt
Ma sain kinnitada, et toimikut oli võimalik saada.
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.