Konfigurera och verifiera SFTP med autentisering av offentliga kärnor på klienter och servrar

Datum för skapande av sida :

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.

image

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.

image

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.

image

image

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

image

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.

image

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

image

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

image

Om du loggar in framgångsrikt kommer du att växlas till den inloggade användarens visning.

image

Du kan också kontrollera att du kan logga in med kommandot dir.

image

Nu när du har förberett en fil som heter "test3.txt", skicka filen med kommandot put.

put c:\temp\test3.txt

image

Om du tittar på mappen C:\Users\sftptest på serversidan kan du se att test3.txt-filen skickas.

image

Försök att komma från klienten.

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

image

Jag kunde bekräfta att filen kunde erhållas.

image

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.