Partilhar via


Connect-AzSftp

Inicia uma sessão SFTP interativa numa Conta Armazenamento do Azure. Os utilizadores podem iniciar sessão usando contas Microsoft Entra, ou contas de utilizador locais através da autenticação SSH padrão. Use o login da conta Microsoft Entra para a melhor segurança e conveniência.

Sintaxe

Default (Predefinição)

Connect-AzSftp
    -StorageAccount <String>
    [-Port <Int32>]
    [-PrivateKeyFile <String>]
    [-PublicKeyFile <String>]
    [-SftpArg <String[]>]
    [-SshClientFolder <String>]
    [-BufferSizeInBytes <Int32>]
    [-StorageAccountEndpoint <String>]
    [-DefaultProfile <IAzureContextContainer>]
    [<CommonParameters>]

CertificateAuth

Connect-AzSftp
    -StorageAccount <String>
    -CertificateFile <String>
    -PrivateKeyFile <String>
    [-Port <Int32>]
    [-SftpArg <String[]>]
    [-SshClientFolder <String>]
    [-BufferSizeInBytes <Int32>]
    [-StorageAccountEndpoint <String>]
    [-DefaultProfile <IAzureContextContainer>]
    [<CommonParameters>]

PublicKeyAuth

Connect-AzSftp
    -StorageAccount <String>
    -PublicKeyFile <String>
    [-Port <Int32>]
    [-SftpArg <String[]>]
    [-SshClientFolder <String>]
    [-BufferSizeInBytes <Int32>]
    [-StorageAccountEndpoint <String>]
    [-DefaultProfile <IAzureContextContainer>]
    [<CommonParameters>]

LocalUserAuth

Connect-AzSftp
    -StorageAccount <String>
    -LocalUser <String>
    [-Port <Int32>]
    [-PrivateKeyFile <String>]
    [-SftpArg <String[]>]
    [-SshClientFolder <String>]
    [-BufferSizeInBytes <Int32>]
    [-StorageAccountEndpoint <String>]
    [-DefaultProfile <IAzureContextContainer>]
    [<CommonParameters>]

Description

Inicie uma sessão interativa SFTP numa conta Armazenamento do Azure. Os utilizadores podem iniciar sessão usando certificados emitidos pela Microsoft Entra ou usando credenciais locais. Recomendamos iniciar sessão utilizando certificados emitidos pela Microsoft Entra sempre que possível. A conta de armazenamento de destino deve ter SFTP habilitado e namespace hierárquico (HNS) habilitado. Para a autenticação Microsoft Entra, a sua identidade Microsoft Entra deve ter permissões RBAC apropriadas, como Contribuidor de Dados de Blob de Armazenamento ou Proprietário de Dados de Blob de Armazenamento.

Exemplos

Exemplo 1: Ligue-se à Conta Armazenamento do Azure usando certificados emitidos pela Microsoft Entra

Connect-AzSftp -StorageAccount "mystorageaccount"

Quando não é fornecido um -LocalUser, o cmdlet tenta iniciar sessão usando Microsoft Entra ID. Essa é a abordagem recomendada, pois não requer gerenciamento manual de certificados.

Exemplo 2: Ligue-se ao Utilizador Local na Conta Armazenamento do Azure usando chave privada SSH para autenticação

Connect-AzSftp -StorageAccount "mystorageaccount" -LocalUser "sftpuser" -PrivateKeyFile "./id_rsa"

Exemplo 3: Ligue-se ao Utilizador Local na Conta Armazenamento do Azure usando chave privada SSH para autenticação

Connect-AzSftp -StorageAccount "mystorageaccount" -LocalUser "sftpuser" -PrivateKeyFile "./id_rsa"

Exemplo 4: Ligue-se ao Utilizador Local na Conta Armazenamento do Azure usando autenticação interativa de nomes de utilizador e palavra-passe

Connect-AzSftp -StorageAccount "mystorageaccount" -LocalUser "sftpuser"

Exemplo 5: Conecte-se com porta personalizada e saída detalhada

Connect-AzSftp -StorageAccount "mystorageaccount" -Port 2022 -SftpArg "-v"

Exemplo 6: Conectar-se com comandos em lote

# Create batch file with SFTP commands
@"
cd uploads
put C:\local\file.txt
ls -la
quit
"@ | Out-File -FilePath "C:\temp\batch.sftp" -Encoding ([System.Text.Encoding]::ASCII)

# Execute batch commands
Connect-AzSftp -StorageAccount "mystorageaccount" -SftpArg "-b", "C:\temp\batch.sftp"

Exemplo 7: Conectar-se com o local do cliente SSH personalizado

Connect-AzSftp -StorageAccount "mystorageaccount" -SshClientFolder "C:\Program Files\OpenSSH"

Exemplo 8: Conecte-se com opções avançadas de SSH

Connect-AzSftp -StorageAccount "mystorageaccount" -SftpArg "-o", "ConnectTimeout=30", "-o", "StrictHostKeyChecking=no", "-v"

Exemplo 9: Conectar-se com o certificado de chaves SSH existentes

# Use existing SSH keys to generate a certificate automatically
Connect-AzSftp -StorageAccount "mystorageaccount" -PrivateKeyFile "C:\keys\id_rsa" -PublicKeyFile "C:\keys\id_rsa.pub"

Exemplo 10: Solucionar problemas de autenticação

# Check Microsoft Entra authentication status
Get-AzContext

# Test certificate generation explicitly
$cert = New-AzSftpCertificate -CertificatePath "C:\temp\test-cert.pub"
Write-Host "Certificate generated: $($cert.CertificatePath)"
Write-Host "Principal: $($cert.Principal)"

# Connect using the generated certificate
Connect-AzSftp -StorageAccount "mystorageaccount" -CertificateFile $cert.CertificatePath -PrivateKeyFile $cert.PrivateKeyPath -SftpArg "-v"

Exemplo 11: Exemplo de fluxo de trabalho completo

# Generate certificate for SFTP authentication
$cert = New-AzSftpCertificate -CertificatePath "C:\certs\sftp-auth.cert"

# Connect to storage account using the generated certificate
$sftpProcess = Connect-AzSftp -StorageAccount "mystorageaccount" -CertificateFile $cert.CertificatePath -PrivateKeyFile $cert.PrivateKeyPath

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

Exemplo 12: Conectar-se a várias contas de armazenamento

# Array of storage accounts to connect to
$storageAccounts = @("account1", "account2", "account3")

# Generate a certificate once for reuse
$cert = New-AzSftpCertificate -CertificatePath "C:\certs\shared-cert.cert"

# Connect to each storage account
foreach ($account in $storageAccounts) {
    Write-Host "Connecting to $account..."
    $process = Connect-AzSftp -StorageAccount $account -CertificateFile $cert.CertificatePath -PrivateKeyFile $cert.PrivateKeyPath -SftpArg "-b", "C:\scripts\sftp-commands.txt"
    Write-Host "Connected to $account (Process ID: $($process.Id))"
}

Exemplo 13: Conectar-se usando o certificado existente e a chave privada

Connect-AzSftp -StorageAccount "mystorageaccount" -CertificateFile "C:\certs\azure-sftp.cert" -PrivateKeyFile "C:\certs\azure-sftp-key"

Parâmetros

-BufferSizeInBytes

Tamanho do buffer em bytes para transferências de ficheiros SFTP. Padrão: 262144 (256 KB).

Propriedades dos parâmetros

Tipo:Int32
Default value:262144
Suporta carateres universais:False
NãoMostrar:False

Conjuntos de parâmetros

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

-CertificateFile

Certificado SSH a ser usado para autenticar na conta de usuário local.

Propriedades dos parâmetros

Tipo:String
Default value:None
Suporta carateres universais:False
NãoMostrar:False

Conjuntos de parâmetros

CertificateAuth
Position:Named
Obrigatório:True
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
Default value:None
Suporta carateres universais:False
NãoMostrar:False
Aliases:AzContext, AzureRmContext, AzureCredential

Conjuntos de parâmetros

(All)
Position: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
Default value:None
Suporta carateres universais:False
NãoMostrar:False

Conjuntos de parâmetros

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

-Port

Porta para se conectar no host remoto.

Propriedades dos parâmetros

Tipo:Int32
Default value:None
Suporta carateres universais:False
NãoMostrar:False

Conjuntos de parâmetros

(All)
Position:Named
Obrigatório:False
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
Default value:None
Suporta carateres universais:False
NãoMostrar:False

Conjuntos de parâmetros

CertificateAuth
Position:Named
Obrigatório:True
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
Default value:None
Suporta carateres universais:False
NãoMostrar:False

Conjuntos de parâmetros

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

-SftpArg

Argumentos SFTP adicionais passados para o OpenSSH.

Propriedades dos parâmetros

Tipo:

String[]

Default value:None
Suporta carateres universais:False
NãoMostrar:False

Conjuntos de parâmetros

(All)
Position:Named
Obrigatório:False
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, sftp).

Propriedades dos parâmetros

Tipo:String
Default value:None
Suporta carateres universais:False
NãoMostrar:False

Conjuntos de parâmetros

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

-StorageAccount

Nome da conta Armazenamento do Azure alvo.

Propriedades dos parâmetros

Tipo:String
Default value:None
Suporta carateres universais:False
NãoMostrar:False

Conjuntos de parâmetros

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

-StorageAccountEndpoint

Sufixo de endpoint de conta de armazenamento personalizado. Padrão: Usa o endpoint baseado no ambiente Azure (por exemplo, blob.core.windows.net).

Propriedades dos parâmetros

Tipo:String
Default value:None
Suporta carateres universais:False
NãoMostrar:False

Conjuntos de parâmetros

(All)
Position: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

String

Saídas

Process