New-AzSftpCertificate

Esse cmdlet faz parte de um módulo de versão prévia . Versões prévias não são recomendadas para uso em ambientes de produção. Para obter mais informações, consulte https://aka.ms/azps-refstatus.

Gere certificados SSH para autenticação SFTP usando credenciais de Microsoft Entra.

Sintaxe

Default (Default)

New-AzSftpCertificate
    [-CertificatePath <String>]
    [-PrivateKeyFile <String>]
    [-SshClientFolder <String>]
    [-Force]
    [-DefaultProfile <IAzureContextContainer>]
    [-WhatIf]
    [-Confirm]
    [<CommonParameters>]

FromPublicKey

New-AzSftpCertificate
    -PublicKeyFile <String>
    [-CertificatePath <String>]
    [-SshClientFolder <String>]
    [-Force]
    [-DefaultProfile <IAzureContextContainer>]
    [-WhatIf]
    [-Confirm]
    [<CommonParameters>]

FromPrivateKey

New-AzSftpCertificate
    -PrivateKeyFile <String>
    [-CertificatePath <String>]
    [-SshClientFolder <String>]
    [-Force]
    [-DefaultProfile <IAzureContextContainer>]
    [-WhatIf]
    [-Confirm]
    [<CommonParameters>]

LocalUser

New-AzSftpCertificate
    -LocalUser <String>
    [-CertificatePath <String>]
    [-PrivateKeyFile <String>]
    [-SshClientFolder <String>]
    [-Force]
    [-DefaultProfile <IAzureContextContainer>]
    [-WhatIf]
    [-Confirm]
    [<CommonParameters>]

Description

O cmdlet New-AzSftpCertificate gera certificados SSH para autenticação SFTP usando suas credenciais de Microsoft Entra atuais. Esse cmdlet fornece os mesmos métodos de autenticação e conjuntos de parâmetros que o módulo Az.Ssh, garantindo a consistência entre Azure PowerShell módulos.

O cmdlet dá suporte a quatro modos de autenticação que se alinham ao módulo SSH:

Default Mode (Microsoft Entra Authentication): quando nenhum arquivo de chave específico é fornecido, o cmdlet gera automaticamente um novo par de chaves SSH e cria um certificado assinado pela AC confiável do Microsoft Entra. Essa é a abordagem mais simples para começar a usar a autenticação SFTP.

FromPublicKey Mode: quando um arquivo de chave pública é fornecido, o cmdlet gera um certificado para essa chave específica usando credenciais Microsoft Entra. Isso é útil quando você já tem chaves públicas SSH e deseja usá-las para Armazenamento do Azure acesso SFTP.

FromPrivateKey Mode: quando um arquivo de chave privada é fornecido, o cmdlet gera a chave pública correspondente e cria um certificado usando credenciais Microsoft Entra. Isso é útil quando você tem chaves privadas existentes e deseja criar certificados para elas.

Modo LocalUser: quando um usuário local é especificado, o cmdlet gera um certificado adequado para autenticação de usuário local em contas de armazenamento. Isso pode ser combinado com chaves privadas existentes ou gerar novas, correspondendo aos recursos de certificado de usuário local do módulo SSH.

Os certificados gerados normalmente são válidos por 1 hora e podem ser usados com qualquer cliente SFTP que dê suporte à autenticação de certificado SSH. Os certificados são assinados pela AC confiável do Microsoft Entra e serão aceitos por Armazenamento do Azure contas em que sua identidade Microsoft Entra tiver permissões apropriadas.

Você deve estar conectado ao Azure com uma conta que tenha permissões RBAC apropriadas (como Colaborador de Dados de Blobs de Armazenamento ou Proprietário de Dados de Blobs de Armazenamento) nas contas de armazenamento de destino.

Exemplos

Exemplo 1: gerar certificado com geração automática de chave

New-AzSftpCertificate

Esse comando gera um novo par de chaves SSH e cria um certificado assinado por Microsoft Entra. O par de chaves e o certificado são salvos no diretório temporário do sistema com nomes de arquivo gerados automaticamente. Essa é a maneira mais simples de começar a usar a autenticação SFTP.

Exemplo 2: gerar certificado com caminho personalizado

New-AzSftpCertificate -CertificatePath "C:\certs\azure-sftp.cert"

Esse comando gera um novo par de chaves SSH e cria um certificado, salvando o certificado no caminho especificado. As chaves privadas e públicas serão salvas no mesmo diretório com nomes correspondentes (azure-sftp e azure-sftp.pub).

Exemplo 3: gerar certificado de chave privada existente

New-AzSftpCertificate -PrivateKeyFile "C:\keys\id_rsa" -CertificatePath "C:\certs\id_rsa.cert"

Esse comando gera um certificado de uma chave privada SSH existente. O cmdlet derivará automaticamente a chave pública da chave privada e criará um certificado assinado por Microsoft Entra. Isso é útil quando você tem chaves privadas existentes e deseja criar certificados para elas.

Exemplo 4: Gerar certificado de chave pública existente

New-AzSftpCertificate -PublicKeyFile "C:\keys\id_rsa.pub" -CertificatePath "C:\certs\id_rsa.cert"

Esse comando gera um certificado de uma chave pública SSH existente. Isso é útil quando você deseja criar certificados para chaves públicas existentes que já estão configuradas em contas de armazenamento.

Exemplo 5: gerar certificado para autenticação de usuário local

New-AzSftpCertificate -LocalUser "sftpuser" -CertificatePath "C:\certs\localuser.cert"

Esse comando gera um certificado adequado para autenticação de usuário local em contas de armazenamento. Um novo par de chaves é gerado e o certificado é configurado para o usuário local especificado. Isso se alinha aos recursos de autenticação de usuário local do módulo SSH.

Exemplo 6: gerar certificado para o usuário local com chave privada existente

New-AzSftpCertificate -LocalUser "sftpuser" -PrivateKeyFile "C:\keys\existing_key" -CertificatePath "C:\certs\localuser.cert"

Esse comando gera um certificado para autenticação de usuário local usando uma chave privada existente. Isso é útil quando você deseja usar chaves específicas para autenticação de usuário local em contas de armazenamento.

Exemplo 7: Gerar certificado com caminhos automáticos

$cert = New-AzSftpCertificate
Write-Host "Certificate: $($cert.CertificatePath)"
Write-Host "Private Key: $($cert.PrivateKeyPath)"
Write-Host "Valid Until: $($cert.ValidUntil)"

Esse comando gera um certificado com geração automática de chaves e caminhos de arquivo temporários. O objeto retornado contém todos os caminhos de arquivo e informações de certificado, facilitando o uso programaticamente.

Exemplo 8: gerar certificado e usar com Connect-AzSftp

# Generate certificate for local user
$cert = New-AzSftpCertificate -LocalUser "sftpuser" -CertificatePath "C:\certs\sftp-auth.cert"

# Use the certificate to connect to storage account
$process = Connect-AzSftp -StorageAccount "mystorageaccount" -LocalUser "sftpuser" -PrivateKeyFile $cert.PrivateKeyPath

# Display connection info
Write-Host "SFTP connection established using certificate: $($cert.CertificatePath)"
Write-Host "Process ID: $($process.Id)"

Este exemplo demonstra o fluxo de trabalho completo de gerar um certificado e usá-lo imediatamente para conexão SFTP, mostrando a integração entre os dois cmdlets.

Exemplo 9: Gerar certificado com o local do cliente SSH personalizado

New-AzSftpCertificate -CertificatePath "C:\certs\custom-cert.pub" -SshClientFolder "C:\Program Files\OpenSSH"

Esse comando gera um certificado usando executáveis SSH de um local específico. Isso é útil quando você tem várias implementações de SSH instaladas ou quando ssh-keygen não está no PATH padrão.

Parâmetros

-CertificatePath

Caminho para o qual gravar o certificado SSH.

Propriedades do parâmetro

Tipo:String
Valor padrão:None
Dá suporte a curingas:False
DontShow:False
Aliases:Arquivo de saída, o

Conjuntos de parâmetros

(All)
Cargo:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline pelo nome da propriedade:False
Valor dos argumentos restantes:False

-Confirm

Solicita sua confirmação antes de executar o cmdlet.

Propriedades do parâmetro

Tipo:SwitchParameter
Valor padrão:None
Dá suporte a curingas:False
DontShow:False
Aliases:cf

Conjuntos de parâmetros

(All)
Cargo:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline pelo nome da propriedade:False
Valor dos argumentos restantes:False

-DefaultProfile

As credenciais, a conta, o locatário e a assinatura usadas para comunicação com Azure.

Propriedades do parâmetro

Tipo:IAzureContextContainer
Valor padrão:None
Dá suporte a curingas:False
DontShow:False
Aliases:AzContext, AzureRmContext, AzureCredential

Conjuntos de parâmetros

(All)
Cargo:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline pelo nome da propriedade:False
Valor dos argumentos restantes:False

-Force

Força o comando a ser executado sem solicitar a confirmação do usuário para substituir os pares de chaves SSH existentes.

Propriedades do parâmetro

Tipo:SwitchParameter
Valor padrão:None
Dá suporte a curingas:False
DontShow:False

Conjuntos de parâmetros

(All)
Cargo:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline pelo nome da propriedade:False
Valor dos argumentos restantes:False

-LocalUser

Nome de usuário para um usuário local na conta de armazenamento de destino.

Propriedades do parâmetro

Tipo:String
Valor padrão:None
Dá suporte a curingas:False
DontShow:False

Conjuntos de parâmetros

LocalUser
Cargo:Named
Obrigatório:True
Valor do pipeline:False
Valor do pipeline pelo nome da propriedade:False
Valor dos argumentos restantes:False

-PrivateKeyFile

Caminho para o arquivo de chave privada.

Propriedades do parâmetro

Tipo:String
Valor padrão:None
Dá suporte a curingas:False
DontShow:False
Aliases:i

Conjuntos de parâmetros

Default
Cargo:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline pelo nome da propriedade:False
Valor dos argumentos restantes:False
LocalUser
Cargo:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline pelo nome da propriedade:False
Valor dos argumentos restantes:False

-PublicKeyFile

Caminho para o arquivo de chave pública.

Propriedades do parâmetro

Tipo:String
Valor padrão:None
Dá suporte a curingas:False
DontShow:False
Aliases:p

Conjuntos de parâmetros

FromPublicKey
Cargo:Named
Obrigatório:True
Valor do pipeline:False
Valor do pipeline pelo nome da propriedade:False
Valor dos argumentos restantes:False

-SshClientFolder

Diretório que contém executáveis SSH (ssh-keygen).

Propriedades do parâmetro

Tipo:String
Valor padrão:None
Dá suporte a curingas:False
DontShow:False

Conjuntos de parâmetros

(All)
Cargo:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline pelo nome da propriedade:False
Valor dos argumentos restantes:False

-WhatIf

Mostra o que aconteceria se o cmdlet fosse executado. O cmdlet não é executado.

Propriedades do parâmetro

Tipo:SwitchParameter
Valor padrão:None
Dá suporte a curingas:False
DontShow:False
Aliases:wi

Conjuntos de parâmetros

(All)
Cargo:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline pelo nome da propriedade:False
Valor dos argumentos restantes:False

CommonParameters

Este cmdlet suporta os parâmetros comuns: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction e -WarningVariable. Para obter mais informações, consulte about_CommonParameters.

Entradas

None

Saídas

Microsoft.Azure.Commands.Sftp.Models.PSCertificateInfo