New-AzSftpCertificate

Este cmdlet faz parte de um módulo de visualização . As versões de visualização não são recomendadas para uso em ambientes de produção. Para obter mais informações, veja https://aka.ms/azps-refstatus.

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

Sintaxe

Default (Predefinição)

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>]

Descrição

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

O cmdlet oferece suporte a quatro modos de autenticação que se alinham com o módulo SSH:

Modo Padrão (Autenticação Microsoft Entra): Quando não são fornecidos ficheiros de chave específicos, o cmdlet gera automaticamente um novo par de chaves SSH e cria um certificado assinado pela CA de confiança da Microsoft Entra. Esta é a abordagem mais simples para começar a usar a autenticação SFTP.

FromPublicKey Mode: Quando é fornecido um ficheiro de chave pública, o cmdlet gera um certificado para essa chave específica usando Microsoft Entra credenciais. Isto é útil quando já tens chaves públicas SSH e queres usá-las para acesso SFTP ao Armazenamento do Azure.

FromPrivateKey Mode: Quando é fornecido um ficheiro de chave privada, o cmdlet gera a chave pública correspondente e cria um certificado usando Microsoft Entra credenciais. 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 são normalmente válidos por 1 hora e podem ser usados com qualquer cliente SFTP que suporte autenticação de certificado SSH. Os certificados são assinados pela CA de confiança da Microsoft Entra e serão aceites por contas do Armazenamento do Azure onde a sua identidade Microsoft Entra tiver as permissões apropriadas.

Deve estar iniciado no Azure com uma conta que tenha permissões RBAC apropriadas (como Contribuidor de Dados de Blob de Armazenamento ou Proprietário de Dados de Blob de Armazenamento) nas contas de armazenamento de destino.

Exemplos

Exemplo 1: Gerar certificado com geração automática de chaves

New-AzSftpCertificate

Este comando gera um novo par de chaves SSH e cria um certificado assinado pela Microsoft Entra. O par de chaves e o certificado são salvos no diretório temp do sistema com nomes de arquivos gerados automaticamente. Esta é 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"

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

Exemplo 3: Gerar certificado a partir de chave privada existente

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

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

Exemplo 4: Gerar certificado a partir de chave pública existente

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

Este comando gera um certificado a partir 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"

Este 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 com os recursos de autenticação de usuário local do módulo SSH.

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

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

Este 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)"

Este 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 programático.

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 local de cliente SSH personalizado

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

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

Parâmetros

-CertificatePath

Caminho para gravar o certificado SSH.

Propriedades dos parâmetros

Tipo:String
Valor predefinido:None
Suporta carateres universais:False
NãoMostrar:False
Aliases:Arquivo de saída, o

Conjuntos de parâmetros

(All)
Posto:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline por nome de propriedade:False
Valor dos restantes argumentos:False

-Confirm

Solicita confirmação antes de executar o cmdlet.

Propriedades dos parâmetros

Tipo:SwitchParameter
Valor predefinido:None
Suporta carateres universais:False
NãoMostrar:False
Aliases:Cf.

Conjuntos de parâmetros

(All)
Posto:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline por nome de propriedade:False
Valor dos restantes argumentos:False

-DefaultProfile

As credenciais, conta, inquilino e subscrição usados para comunicação com o Azure.

Propriedades dos parâmetros

Tipo:IAzureContextContainer
Valor predefinido:None
Suporta carateres universais:False
NãoMostrar:False
Aliases:AzContext, AzureRmContext, AzureCredential

Conjuntos de parâmetros

(All)
Posto:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline por nome de propriedade:False
Valor dos restantes argumentos:False

-Force

Força o comando a ser executado sem pedir confirmação do utilizador para sobrescrever pares de chaves SSH existentes.

Propriedades dos parâmetros

Tipo:SwitchParameter
Valor predefinido:None
Suporta carateres universais:False
NãoMostrar:False

Conjuntos de parâmetros

(All)
Posto:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline por nome de propriedade:False
Valor dos restantes argumentos:False

-LocalUser

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

Propriedades dos parâmetros

Tipo:String
Valor predefinido:None
Suporta carateres universais:False
NãoMostrar:False

Conjuntos de parâmetros

LocalUser
Posto:Named
Obrigatório:True
Valor do pipeline:False
Valor do pipeline por nome de propriedade:False
Valor dos restantes argumentos:False

-PrivateKeyFile

Caminho para o arquivo de chave privada.

Propriedades dos parâmetros

Tipo:String
Valor predefinido:None
Suporta carateres universais:False
NãoMostrar:False
Aliases:i

Conjuntos de parâmetros

Default
Posto:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline por nome de propriedade:False
Valor dos restantes argumentos:False
LocalUser
Posto:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline por nome de propriedade:False
Valor dos restantes argumentos:False

-PublicKeyFile

Caminho para o arquivo de chave pública.

Propriedades dos parâmetros

Tipo:String
Valor predefinido:None
Suporta carateres universais:False
NãoMostrar:False
Aliases:p

Conjuntos de parâmetros

FromPublicKey
Posto:Named
Obrigatório:True
Valor do pipeline:False
Valor do pipeline por nome de propriedade:False
Valor dos restantes argumentos:False

-SshClientFolder

Diretório contendo executáveis SSH (ssh-keygen).

Propriedades dos parâmetros

Tipo:String
Valor predefinido:None
Suporta carateres universais:False
NãoMostrar:False

Conjuntos de parâmetros

(All)
Posto:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline por nome de propriedade:False
Valor dos restantes argumentos:False

-WhatIf

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

Propriedades dos parâmetros

Tipo:SwitchParameter
Valor predefinido:None
Suporta carateres universais:False
NãoMostrar:False
Aliases:Wi

Conjuntos de parâmetros

(All)
Posto:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline por nome de propriedade:False
Valor dos restantes argumentos: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