SFTP:n määrittäminen ja tarkistaminen julkisen avaimen todennuksella asiakkaissa ja palvelimilla
ympäristö
- Windows
-
- Windows 10 Pro
- Windows Server 2019
- Windows 7
- Windows Server 2012 R2
- AvaaSSH
-
- 7.7p1
- 8.1p1 - Beetaversio
※ Se toimii muissa versioissa, mutta sitä ei ole vahvistettu
Alun perin
Viimeksi olet määrittänyt SFTP-palvelimen varmistamaan, että salasanatodennuksen avulla voit lähettää ja vastaanottaa tiedostoja. Tällä kertaa sftp lähettää ja vastaanottaa tiedostoja julkisen avaimen todennuksen avulla.
Valmistelu etukäteen
- Asiakkaaseen on asennettu OpenSSH-asiakasohjelma
- Palvelimeen on asennettu OpenSSH-palvelin.
- Palvelin käynnistää OpenSSH-palvelun ja portti 22 vapautuu.
Yksityisten ja julkisten avainten luominen asiakkaassa
Kirjaudu asiakkaaseen. Yksityisiä ja julkisia avaimia voidaan luoda myös palvelinpuolelle, mutta yksityinen avain on asiakas ja julkinen avain on palvelimen hallussa. Luo asiakaspuolelle.
Käynnistä PowerShell järjestelmänvalvojan oikeuksilla.
Luo tiedosto, siirry mihin tahansa kansioon, jossa on CD-komento, ja kirjoita seuraava komento:
ssh-keygen -t rsa -f id_rsa
Voit laittaa salasanan avaimeen, joten laita se tarvittaessa.
Jos avaimen luominen onnistuu, julkiset ja yksityiset avaimet luodaan kansioon seuraavasti: "id_rsa" on yksityinen avain ja "id_rsa.pub" on julkinen avain.
Julkisen avaimen määrittäminen palvelimeen
Kirjaudu Windowsiin palvelimen SFTP-tilillä.
Aseta luotu julkinen avain id_rsa.pub palvelimen seuraavaan kansioon. 「. Jos sinulla ei ole "ssh" -kansiota, luo sellainen. Muuta myös tiedostonimeksi "authorized_keys". (Korvaa <> käyttäjätunnuksella, jonka kirjaudut SFTP:llä.)
- C:\Käyttäjät\< käyttäjänimi>\.ssh
Huomaa, että vain käyttäjät, joilla on järjestelmänvalvojia tai SFTP-käyttäjiä, voivat käyttää tätä tiedostoa. Sftp-yhteydet epäonnistuvat aina, jos muilla käyttäjillä on käyttöoikeus. Esimerkiksi NG:llä on käyttöoikeuksiin käyttäjä- tai Kaikki-ryhmä.
Tässä esimerkissä". Ssh-kansion käyttöoikeudet ovat "Group:SYSTEM", "Group: Administrators" ja "User: sftptest". Jos et voi poistaa käyttöoikeutta, poista käyttöoikeuksien periytyminen käytöstä.
Julkisen avaimen todennuksen ottaminen käyttöön palvelimessa
Kirjaudu palvelimeen järjestelmänvalvojien käyttöoikeuksien käyttäjillä ja avaa sitten seuraavat kansiot:
- C:\ProgramData\ssh
Koska on olemassa tiedosto nimeltä "sshd_config", kopioi se ja muuta tiedoston nimi "sshd_config_default" ja määritä varmuuskopio.
Avaa "sshd_config" tekstieditorissa, joka on käynnistetty järjestelmänvalvojan oikeuksilla.
Voit ottaa julkisen avaimen todennuksen käyttöön seuraavasti:
#PubkeyAuthentication yes
↓↓↓
PubkeyAuthentication yes
Salasanan todennus on myös oletusarvoisesti käytössä, joten jos haluat poistaa sen käytöstä, muuta se seuraavasti.
#PasswordAuthentication yes
↓↓↓
PasswordAuthentication no
Haluan sijoittaa julkisen avaimen kullekin SFTP-tilille, joten kommentoin seuraavaa riviä:
Match Group administrators
AuthorizedKeysFile __PROGRAMDATA__/ssh/administrators_authorized_keys
↓↓↓
#Match Group administrators
# AuthorizedKeysFile __PROGRAMDATA__/ssh/administrators_authorized_keys
Jos haluat määrittää pääkansion kullekin SFTP-tilille, lisää seuraava rivi: Sen mukaan, määritätkö tämän vai et, kun määrität kansiopolun asiakkaasta, se voi muuttua muotoon "C:\xxxxx" tai "/xxxxx".
Match User <ユーザー名>
ChrootDirectory <フォルダパス>
esimerkki
Match User TestUser
ChrootDirectory C:\Users\TestUser
Kun olet tallentanut sshd_config, käynnistä OpenSSH-palvelin uudelleen.
Tiedostojen lähettäminen ja vastaanottaminen asiakkailta, joilla on julkisen avaimen todennus
Sijoita luomasi id_rsa -avain ennen yhteyden muodostamista SFTP:hen kansioon, joka on vain SFTP:tä käyttävän käyttäjän käytettävissä. Huomaa, että sftp-yhteydet epäonnistuvat, jos ne sijoitetaan kansioon, jota muut käyttäjät voivat käyttää. Varsinkin jos kansiolla on Käyttäjät- ja Kaikki-ryhmien käyttöoikeudet, se on NG.
Pohjimmiltaan se on suositeltavaa, koska se viittaa automaattisesti polkuun, jos laitat sen seuraavaan kansioon.
- C:\Käyttäjät\< käyttäjänimi>\.ssh
Asiakkaan ". Ssh-kansion käyttöoikeudet ovat "Group:SYSTEM", "Group: Administrators", "User: < Login user >".
Jos haluat käyttää sftp:tä yksityisellä avaimella, kirjoita komento seuraavasti (korvaa <>): Jos olet määrittänyt tunnuslauseen, kirjoita myös tunnuslause.
sftp -i id_rsa <ユーザー名>@<サーバー名>
Jos kirjaudut sisään onnistuneesti, sinut vaihdetaan kirjautuneen käyttäjän näyttöön.
Voit myös tarkistaa, että voit kirjautua sisään dir-komennolla.
Nyt kun olet valmistellut tiedoston nimeltä "test3.txt", lähetä tiedosto put-komennolla.
put c:\temp\test3.txt
Jos tarkastelet palvelinpuolen C:\Users\sftptest-kansiota, näet, että test3.txt tiedosto lähetetään.
Yritä saada asiakas.
get test3.txt c:\temp\test4.txt
Pystyin vahvistamaan, että tiedosto saatiin.
Yhteenveto
SFTP pystyi lähettämään ja vastaanottamaan tiedostoja julkisen avaimen todennuksen avulla. Käyttämällä julkista avainta palvelinpuoli ei voi tietää salasanaa. Sen avulla voit vaihtaa tiedostoja turvallisemmin kuin salasanan todennus.