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.