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.