Konfigurera och verifiera SFTP med autentisering av offentliga kärnor på klienter och servrar
miljö
- Windows
-
- Windows 10 Pro
- Windows Server 2019
- Windows 7
- Windows Server 2012 R2
- ÖppnaSSH
-
- 7.7p1
- 8.1p1 - Beta
※ Det fungerar i andra versioner, men det är obekräftat
Först
Förra gången konfigurerade du en SFTP-server för att verifiera att lösenordsautentisering gör att du kan skicka och ta emot filer. Den här gången skickar och tar sftp emot filer med autentisering av offentliga autentisering.
Förberedelse i förväg
- Klienten har en OpenSSH-klient installerad
- Servern har en OpenSSH-server installerad.
- Servern startar OpenSSH-tjänsten och port 22 frigörs.
Skapa privata och offentliga nycklar i klienten
Logga in på klienten. Privata och offentliga nycklar kan också skapas på serversidan, men den privata nyckeln kommer att vara klienten och den offentliga nyckeln kommer att hållas av servern. Skapa på klientsidan.
Starta PowerShell med administratörsrättigheter.
Skapa en fil, gå till valfri mapp med cd-kommandot och skriv följande kommando:
ssh-keygen -t rsa -f id_rsa
Du kan lägga en lösenfras (lösenord) i nyckeln, så lägg den om det behövs.
Om nyckeln har genererats skapas de offentliga och privata nycklarna i mappen på följande sätt: "id_rsa" är den privata nyckeln och "id_rsa.pub" är den offentliga nyckeln.
Placera en offentlig nyckel på servern
Logga in i Windows med ditt SFTP-konto för servern.
Placera den skapade offentliga nyckeln "id_rsa.pub" i följande mapp på servern. 「. Om du inte har en "ssh"-mapp, skapa en. Ändra också filnamnet till "authorized_keys". (Ersätt <> med användarnamnet som du loggar in med SFTP.)
- C:\Användare\< användarnamn>\.ssh
Observera att endast användare med "administratörer" eller SFTP-användare bör ha åtkomst till den här filen. Sftp-anslutningar misslyckas alltid om andra användare har åtkomst. NG har till exempel en grupp användare eller alla som har lagts till i behörigheten.
I det här exemplet ". Åtkomsträttigheterna för mappen "ssh" är "Grupp:SYSTEM", "Grupp: Administratörer" och "Användare: sftptest". Om du inte kan ta bort en behörighet inaktiverar du behörighetsarv.
Aktivera autentisering av offentliga servrarer på servern
Logga in på servern med användare av administratörsbehörighet och öppna sedan följande mappar:
- C:\ProgramData\ssh
Eftersom det finns en fil som heter "sshd_config", kopiera den och ändra filnamnet till "sshd_config_default" och konfigurera en säkerhetskopia.
Öppna "sshd_config" i textredigeraren som lanserades med administratörsbehörighet.
Så här aktiverar du autentisering av offentliga autentiseringar:
#PubkeyAuthentication yes
↓↓↓
PubkeyAuthentication yes
Lösenordsautentisering är också aktiverat som standard, så om du vill inaktivera det, ändra det enligt följande.
#PasswordAuthentication yes
↓↓↓
PasswordAuthentication no
Jag vill placera en offentlig nyckel för varje SFTP-konto, så jag kommenterar följande rad:
Match Group administrators
AuthorizedKeysFile __PROGRAMDATA__/ssh/administrators_authorized_keys
↓↓↓
#Match Group administrators
# AuthorizedKeysFile __PROGRAMDATA__/ssh/administrators_authorized_keys
Om du vill ange rotkatalogen för varje SFTP-konto lägger du till följande rad: Beroende på om du anger detta eller inte kan det ändras till formatet "C:\xxxxx" eller "/xxxxx" när du anger en mappsökväg från klienten.
Match User <ユーザー名>
ChrootDirectory <フォルダパス>
exempel
Match User TestUser
ChrootDirectory C:\Users\TestUser
När du har sshd_config startar du om OpenSSH-servern.
Skicka och ta emot filer från klienter med autentisering av offentliga autentiseringsnyckelr
Placera den privata nyckeln "id_rsa" som du skapade innan du ansluter till SFTP i en mapp som endast är tillgänglig för användaren som kör SFTP. Observera att sftp-anslutningar misslyckas om de placeras i en mapp som kan nås av andra användare. Särskilt om mappen har behörigheter för grupperna Användare och Alla är den NG.
I grund och botten rekommenderas det eftersom det automatiskt hänvisar till sökvägen om du lägger den i följande mapp.
- C:\Användare\< användarnamn>\.ssh
Kundens ". Åtkomsträttigheterna för mappen "ssh" är "Grupp:SYSTEM", "Grupp: Administratörer", "Användare: < Inloggningsanvändare >".
Om du vill komma åt sftp med den privata nyckeln skriver du kommandot på följande sätt (ersätt <>): Om du har skapat en lösenfras anger du också en lösenfras.
sftp -i id_rsa <ユーザー名>@<サーバー名>
Om du loggar in framgångsrikt kommer du att växlas till den inloggade användarens visning.
Du kan också kontrollera att du kan logga in med kommandot dir.
Nu när du har förberett en fil som heter "test3.txt", skicka filen med kommandot put.
put c:\temp\test3.txt
Om du tittar på mappen C:\Users\sftptest på serversidan kan du se att test3.txt-filen skickas.
Försök att komma från klienten.
get test3.txt c:\temp\test4.txt
Jag kunde bekräfta att filen kunde erhållas.
Sammanfattning
Du kunde skicka och ta emot filer med SFTP med hjälp av autentisering med offentliga krediter. Genom att använda en offentlig nyckel kan serversidan inte känna till lösenordet. Det låter dig utbyta filer säkrare än lösenordsautentisering.