Auktorisera åtkomst till Azure Blob Storage för en SFTP-klient (SSH File Transfer Protocol)
Artikel
Den här artikeln visar hur du auktoriserar åtkomst till SFTP-klienter så att du på ett säkert sätt kan ansluta till Blob Storage-slutpunkten för ditt Azure Storage-konto med hjälp av en SFTP-klient.
Azure Storage stöder inte signatur för delad åtkomst (SAS) eller Microsoft Entra-autentisering för åtkomst till SFTP-slutpunkten. I stället måste du använda en identitet för lokal användare som kan skyddas med ett Azure-genererat lösenord eller ett SSH-nyckelpar (Secure Shell). För att ge åtkomst till en anslutande klient måste lagringskontot ha en identitet som är associerad med lösenordet eller nyckelparet. Den identiteten kallas för en lokal användare.
I det här avsnittet får du lära dig hur du skapar en lokal användare, väljer en autentiseringsmetod och tilldelar behörigheter för den lokala användaren.
Du kan autentisera lokala användare som ansluter från SFTP-klienter med hjälp av ett lösenord eller ett offentligt-privat SSH-nyckelpar (Secure Shell).
Viktigt!
Du kan aktivera båda formerna av autentisering, men SFTP-klienter kan bara ansluta med hjälp av en av dem. Multifaktorautentisering, där både ett giltigt lösenord och ett giltigt offentligt och privat nyckelpar krävs för lyckad autentisering stöds inte.
Under Inställningar väljer du SFTP och sedan Lägg till lokal användare.
I fönstret Lägg till lokal användarkonfiguration lägger du till namnet på en användare och väljer sedan vilka autentiseringsmetoder som du vill associera med den här lokala användaren. Du kan associera ett lösenord och/eller en SSH-nyckel.
Om du väljer SSH-lösenord visas lösenordet när du slutför alla steg i fönstret Lägg till lokal användarkonfiguration . SSH-lösenord genereras av Azure och är minst 32 tecken långa.
Om du väljer SSH-nyckelpar väljer du Offentlig nyckelkälla för att ange en nyckelkälla.
I följande tabell beskrivs varje alternativ för nyckelkälla:
Alternativ
Vägledning
Generera ett nytt nyckelpar
Använd det här alternativet om du vill skapa ett nytt offentligt/privat nyckelpar. Den offentliga nyckeln lagras i Azure med det nyckelnamn som du anger. Den privata nyckeln kan laddas ned när den lokala användaren har lagts till.
Använda en befintlig nyckel som lagras i Azure
Använd det här alternativet om du vill använda en offentlig nyckel som redan lagras i Azure. Information om hur du hittar befintliga nycklar i Azure finns i Listnycklar. När SFTP-klienter ansluter till Azure Blob Storage måste dessa klienter ange den privata nyckel som är associerad med den här offentliga nyckeln.
Använda befintlig offentlig nyckel
Använd det här alternativet om du vill ladda upp en offentlig nyckel som lagras utanför Azure. Om du inte har en offentlig nyckel, men vill generera en utanför Azure, kan du läsa Generera nycklar med ssh-keygen.
Välj Nästa för att öppna fliken Behörigheter i konfigurationsfönstret.
Det här avsnittet visar hur du autentiserar med hjälp av antingen en SSH-nyckel eller ett lösenord.
Autentisera med hjälp av en SSH-nyckel (PowerShell)
Välj den typ av offentlig nyckel som du vill använda.
Använda en befintlig nyckel som lagras i Azure
Använd det här alternativet om du vill använda en offentlig nyckel som redan lagras i Azure. Information om hur du hittar befintliga nycklar i Azure finns i Listnycklar. När SFTP-klienter ansluter till Azure Blob Storage måste dessa klienter ange den privata nyckel som är associerad med den här offentliga nyckeln.
Använd en befintlig offentlig nyckel som lagras utanför Azure.
Om du ännu inte har en offentlig nyckel kan du läsa Generera nycklar med ssh-keygen för vägledning om hur du skapar en. Endast openSSH-formaterade offentliga nycklar stöds. Nyckeln som du anger måste använda det här formatet: <key type> <key data>. Till exempel skulle RSA-nycklar se ut ungefär så här: ssh-rsa AAAAB3N.... Om nyckeln är i ett annat format kan ett verktyg som ssh-keygen kan användas för att konvertera den till OpenSSH-format.
Skapa ett offentligt nyckelobjekt med kommandot New-AzStorageLocalUserSshPublicKey . Ange parametern -Key till en sträng som innehåller nyckeltypen och den offentliga nyckeln. I följande exempel är ssh-rsa nyckeltypen och nyckeln är ssh-rsa a2V5....
$sshkey = "ssh-rsa a2V5..."
$sshkey = New-AzStorageLocalUserSshPublicKey -Key $sshkey -Description "description for ssh public key"
Skapa en lokal användare med hjälp av kommandot Set-AzStorageLocalUser . Om du använder en SSH-nyckel anger du parametern SshAuthorizedKey till det offentliga nyckelobjekt som du skapade i föregående steg.
I följande exempel skapas en lokal användare och nyckeln skrivs sedan ut till konsolen.
Du kan inte hämta lösenordet senare, så se till att kopiera lösenordet och sedan spara det på en plats där du hittar det. Om du förlorar det här lösenordet måste du generera ett nytt. Observera att SSH-lösenord genereras av Azure och är minst 32 tecken långa.
Det här avsnittet visar hur du autentiserar med hjälp av antingen en SSH-nyckel eller ett lösenord.
Autentisera med hjälp av en SSH-nyckel (Azure CLI)
Välj den typ av offentlig nyckel som du vill använda.
Använda en befintlig nyckel som lagras i Azure
Använd det här alternativet om du vill använda en offentlig nyckel som redan lagras i Azure. Information om hur du hittar befintliga nycklar i Azure finns i Listnycklar. När SFTP-klienter ansluter till Azure Blob Storage måste dessa klienter ange den privata nyckel som är associerad med den här offentliga nyckeln.
Använd en befintlig offentlig nyckel som lagras utanför Azure.
Om du ännu inte har en offentlig nyckel kan du läsa Generera nycklar med ssh-keygen för vägledning om hur du skapar en. Endast openSSH-formaterade offentliga nycklar stöds. Nyckeln som du anger måste använda det här formatet: <key type> <key data>. Till exempel skulle RSA-nycklar se ut ungefär så här: ssh-rsa AAAAB3N.... Om nyckeln är i ett annat format kan ett verktyg som ssh-keygen kan användas för att konvertera den till OpenSSH-format.
I följande exempel skapas en lokal användare med namnet contosouser, och en ssh-rsa-nyckel används med nyckelvärdet ssh-rsa a2V5... för för autentisering.
Du kan inte hämta lösenordet senare, så se till att kopiera lösenordet och sedan spara det på en plats där du hittar det. Om du förlorar det här lösenordet måste du generera ett nytt. Observera att SSH-lösenord genereras av Azure och är minst 32 tecken långa.
Ge behörighet till containrar
Välj vilka containrar du vill bevilja åtkomst till och vilken åtkomstnivå du vill ge. Dessa behörigheter gäller för alla kataloger och underkataloger i containern. Mer information om varje containerbehörighet finns i Containerbehörigheter.
Om du vill auktorisera åtkomst på fil- och katalognivå kan du aktivera ACL-auktorisering. Den här funktionen är i förhandsversion och kan endast aktiveras med hjälp av Azure-portalen.
På fliken Behörigheter väljer du de containrar som du vill göra tillgängliga för den här lokala användaren. Välj sedan vilka typer av åtgärder som du vill att den lokala användaren ska kunna utföra.
Viktigt!
Den lokala användaren måste ha minst en containerbehörighet eller ACL-behörighet till containerns hemkatalog. Annars misslyckas ett anslutningsförsök till containern.
Om du vill auktorisera åtkomst med hjälp av de åtkomstkontrollistor (ACL) som är associerade med filer och kataloger i den här containern markerar du kryssrutan Tillåt ACL-auktorisering . Mer information om hur du använder ACLS för att auktorisera SFTP-klienter finns i ACL:er.
Du kan också lägga till den här lokala användaren i en grupp genom att tilldela användaren till ett grupp-ID. Det ID:t kan vara valfritt tal- eller nummerschema som du vill. Genom att gruppera användare kan du lägga till och ta bort användare utan att behöva tillämpa ACL:er på en hel katalogstruktur igen. I stället kan du bara lägga till eller ta bort användare från gruppen.
Kommentar
Ett användar-ID för den lokala användaren genereras automatiskt. Du kan inte ändra det här ID:t, men du kan se ID:t när du har skapat den lokala användaren genom att öppna användaren igen i fönstret Redigera lokal användare .
I rutan Redigera startkatalog skriver du namnet på containern eller katalogsökvägen (inklusive containernamnet) som är standardplatsen som är associerad med den här lokala användaren (till exempel: mycontainer/mydirectory).
Välj knappen Lägg till för att lägga till den lokala användaren.
Om du har aktiverat lösenordsautentisering visas det Azure-genererade lösenordet i en dialogruta efter att den lokala användaren har lagts till.
Viktigt!
Du kan inte hämta lösenordet senare, så se till att kopiera lösenordet och sedan spara det på en plats där du hittar det.
Om du väljer att generera ett nytt nyckelpar uppmanas du att ladda ned nyckelparets privata nyckel när den lokala användaren har lagts till.
Kommentar
Lokala användare har en sharedKey egenskap som endast används för SMB-autentisering.
Bestäm vilka containrar du vill göra tillgängliga för den lokala användaren och vilka typer av åtgärder som du vill att den lokala användaren ska kunna utföra. Skapa ett behörighetsomfångsobjekt med kommandot New-AzStorageLocalUserPermissionScope och ange parametern -Permission för kommandot till en eller flera bokstäver som motsvarar åtkomstbehörighetsnivåer. Möjliga värden är Read(r), Write (w), Delete (d), List (l), Create (c), Modify Ownership(o), Modify Permissions(p).
Följande exempeluppsättning skapar ett behörighetsomfångsobjekt som ger läs- och skrivbehörighet till containern mycontainer .
Den lokala användaren måste ha minst en containerbehörighet för den container som den ansluter till, annars misslyckas anslutningsförsöket.
Uppdatera den lokala användaren med hjälp av kommandot Set-AzStorageLocalUser . Ange parametern -PermissionScope till det behörighetsomfångsobjekt som du skapade tidigare.
I följande exempel uppdateras en lokal användare med containerbehörigheter och skrivs sedan ut behörighetsomfången till konsolen.
Om du vill uppdatera en lokal användare med behörighet till en container använder du kommandot az storage account local-user update och anger sedan parametern permission-scope för kommandot till en eller flera bokstäver som motsvarar åtkomstbehörighetsnivåer. Möjliga värden är Read(r), Write (w), Delete (d), List (l), Create (c), Modify Ownership(o), Modify Permissions(p).
I följande exempel ges ett lokalt användarnamn läs- contosouser och skrivåtkomst till en container med namnet contosocontainer.