Connect-AzSftp

To polecenie cmdlet jest częścią modułu w wersji zapoznawczej . Wersje zapoznawcze nie są zalecane do użycia w środowiskach produkcyjnych. Aby uzyskać więcej informacji, zobacz https://aka.ms/azps-refstatus.

Uruchamia interaktywną sesję SFTP na konto Azure Storage. Użytkownicy mogą logować się przy użyciu kont Microsoft Entra lub kont użytkowników lokalnych za pośrednictwem standardowego uwierzytelniania SSH. Użyj Microsoft Entra identyfikatora logowania do konta, aby uzyskać najlepsze zabezpieczenia i wygodę.

Składnia

Default (domyślnie)

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

CertificateAuth

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

PublicKeyAuth

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

LocalUserAuth

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

Opis

Uruchom interaktywną sesję SFTP na konto Azure Storage. Użytkownicy mogą logować się przy użyciu Microsoft Entra wystawionych certyfikatów lub przy użyciu poświadczeń użytkownika lokalnego. Zalecamy logowanie przy użyciu Microsoft Entra wystawionych certyfikatów, jeśli jest to możliwe. Docelowe konto magazynu musi mieć włączoną usługę SFTP i włączoną hierarchiczną przestrzeń nazw (HNS). W przypadku uwierzytelniania Microsoft Entra tożsamość Microsoft Entra musi mieć odpowiednie uprawnienia kontroli dostępu opartej na rolach, takie jak współautor danych obiektu blob usługi Storage lub właściciel danych obiektu blob usługi Storage.

Przykłady

Przykład 1. Nawiązywanie połączenia z kontem Azure Storage przy użyciu Microsoft Entra wystawionych certyfikatów

Connect-AzSftp -StorageAccount "mystorageaccount"

Gdy nie podano -LocalUser, polecenie cmdlet podejmie próbę zalogowania się przy użyciu Microsoft Entra ID. Jest to zalecane podejście, ponieważ nie wymaga ręcznego zarządzania certyfikatami.

Przykład 2. Nawiązywanie połączenia z użytkownikiem lokalnym na koncie Azure Storage przy użyciu klucza prywatnego SSH na potrzeby uwierzytelniania

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

Przykład 3. Nawiązywanie połączenia z użytkownikiem lokalnym na koncie Azure Storage przy użyciu klucza prywatnego SSH na potrzeby uwierzytelniania

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

Przykład 4. Nawiązywanie połączenia z użytkownikiem lokalnym na koncie Azure Storage przy użyciu interaktywnego uwierzytelniania nazwy użytkownika i hasła

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

Przykład 5. Nawiązywanie połączenia z niestandardowym portem i pełnymi danymi wyjściowymi

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

Przykład 6. Nawiązywanie połączenia za pomocą poleceń wsadowych

# 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"

Przykład 7. Nawiązywanie połączenia z niestandardową lokalizacją klienta SSH

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

Przykład 8. Nawiązywanie połączenia z zaawansowanymi opcjami SSH

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

Przykład 9. Nawiązywanie połączenia z certyfikatem z istniejących kluczy SSH

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

Przykład 10: Rozwiązywanie problemów z uwierzytelnianiem

# 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"

Przykład 11. Pełny przykład przepływu pracy

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

Przykład 12. Nawiązywanie połączenia z wieloma kontami magazynu

# 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))"
}

Przykład 13: Nawiązywanie połączenia przy użyciu istniejącego certyfikatu i klucza prywatnego

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

Parametry

-BufferSizeInBytes

Rozmiar buforu w bajtach dla transferów plików SFTP. Ustawienie domyślne: 262144 (256 KB).

Właściwości parametru

Typ:Int32
Domyślna wartość:262144
Obsługuje symbole wieloznaczne:False
DontShow:False

Zestawy parametrów

(All)
Position:Named
Obowiązkowy:False
Wartość z potoku:False
Wartość z potoku według nazwy właściwości:False
Wartość z pozostałych argumentów:False

-CertificateFile

Certyfikat SSH używany do uwierzytelniania na koncie użytkownika lokalnego.

Właściwości parametru

Typ:String
Domyślna wartość:None
Obsługuje symbole wieloznaczne:False
DontShow:False

Zestawy parametrów

Default
Position:Named
Obowiązkowy:False
Wartość z potoku:False
Wartość z potoku według nazwy właściwości:False
Wartość z pozostałych argumentów:False

-Confirm

Prosi o potwierdzenie przed uruchomieniem cmdletu.

Właściwości parametru

Typ:SwitchParameter
Domyślna wartość:None
Obsługuje symbole wieloznaczne:False
DontShow:False
Aliasy:por

Zestawy parametrów

(All)
Position:Named
Obowiązkowy:False
Wartość z potoku:False
Wartość z potoku według nazwy właściwości:False
Wartość z pozostałych argumentów:False

-DefaultProfile

Poświadczenia, konto, dzierżawa i subskrypcja używane do komunikacji z Azure.

Właściwości parametru

Typ:IAzureContextContainer
Domyślna wartość:None
Obsługuje symbole wieloznaczne:False
DontShow:False
Aliasy:AzContext, AzureRmContext, AzureCredential

Zestawy parametrów

(All)
Position:Named
Obowiązkowy:False
Wartość z potoku:False
Wartość z potoku według nazwy właściwości:False
Wartość z pozostałych argumentów:False

-Force

Wymusza uruchomienie polecenia bez monitowania o potwierdzenie użytkownika w celu zastąpienia istniejących par kluczy SSH.

Właściwości parametru

Typ:SwitchParameter
Domyślna wartość:None
Obsługuje symbole wieloznaczne:False
DontShow:False

Zestawy parametrów

(All)
Position:Named
Obowiązkowy:False
Wartość z potoku:False
Wartość z potoku według nazwy właściwości:False
Wartość z pozostałych argumentów:False

-LocalUser

Nazwa użytkownika lokalnego na docelowym koncie magazynu.

Właściwości parametru

Typ:String
Domyślna wartość:None
Obsługuje symbole wieloznaczne:False
DontShow:False

Zestawy parametrów

LocalUserAuth
Position:Named
Obowiązkowy:True
Wartość z potoku:False
Wartość z potoku według nazwy właściwości:False
Wartość z pozostałych argumentów:False

-Port

Port do nawiązania połączenia na hoście zdalnym.

Właściwości parametru

Typ:

Nullable<T>[Int32]

Domyślna wartość:None
Obsługuje symbole wieloznaczne:False
DontShow:False

Zestawy parametrów

(All)
Position:Named
Obowiązkowy:False
Wartość z potoku:False
Wartość z potoku według nazwy właściwości:False
Wartość z pozostałych argumentów:False

-PrivateKeyFile

Ścieżka do pliku klucza prywatnego.

Właściwości parametru

Typ:String
Domyślna wartość:None
Obsługuje symbole wieloznaczne:False
DontShow:False

Zestawy parametrów

Default
Position:Named
Obowiązkowy:False
Wartość z potoku:False
Wartość z potoku według nazwy właściwości:False
Wartość z pozostałych argumentów:False
LocalUserAuth
Position:Named
Obowiązkowy:False
Wartość z potoku:False
Wartość z potoku według nazwy właściwości:False
Wartość z pozostałych argumentów:False

-PublicKeyFile

Ścieżka do pliku klucza publicznego.

Właściwości parametru

Typ:String
Domyślna wartość:None
Obsługuje symbole wieloznaczne:False
DontShow:False

Zestawy parametrów

Default
Position:Named
Obowiązkowy:False
Wartość z potoku:False
Wartość z potoku według nazwy właściwości:False
Wartość z pozostałych argumentów:False

-SftpArg

Dodatkowe argumenty SFTP przekazane do protokołu OpenSSH.

Właściwości parametru

Typ:

String[]

Domyślna wartość:None
Obsługuje symbole wieloznaczne:False
DontShow:False

Zestawy parametrów

(All)
Position:Named
Obowiązkowy:False
Wartość z potoku:False
Wartość z potoku według nazwy właściwości:False
Wartość z pozostałych argumentów:False

-SshClientFolder

Katalog zawierający pliki wykonywalne SSH (ssh-keygen, sftp).

Właściwości parametru

Typ:String
Domyślna wartość:None
Obsługuje symbole wieloznaczne:False
DontShow:False

Zestawy parametrów

(All)
Position:Named
Obowiązkowy:False
Wartość z potoku:False
Wartość z potoku według nazwy właściwości:False
Wartość z pozostałych argumentów:False

-StorageAccount

Nazwa docelowego konta Azure Storage.

Właściwości parametru

Typ:String
Domyślna wartość:None
Obsługuje symbole wieloznaczne:False
DontShow:False

Zestawy parametrów

(All)
Position:0
Obowiązkowy:True
Wartość z potoku:False
Wartość z potoku według nazwy właściwości:False
Wartość z pozostałych argumentów:False

-StorageAccountEndpoint

Niestandardowy sufiks punktu końcowego konta magazynu. Ustawienie domyślne: używa punktu końcowego na podstawie środowiska Azure (np. blob.core.windows.net).

Właściwości parametru

Typ:String
Domyślna wartość:None
Obsługuje symbole wieloznaczne:False
DontShow:False

Zestawy parametrów

(All)
Position:Named
Obowiązkowy:False
Wartość z potoku:False
Wartość z potoku według nazwy właściwości:False
Wartość z pozostałych argumentów:False

-WhatIf

Pokazuje, co się stanie, jeśli polecenie cmdlet zostanie uruchomione. Cmdlet nie jest uruchomiony.

Właściwości parametru

Typ:SwitchParameter
Domyślna wartość:None
Obsługuje symbole wieloznaczne:False
DontShow:False
Aliasy:Wi

Zestawy parametrów

(All)
Position:Named
Obowiązkowy:False
Wartość z potoku:False
Wartość z potoku według nazwy właściwości:False
Wartość z pozostałych argumentów:False

CommonParameters

To polecenie cmdlet obsługuje typowe parametry: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction i -WarningVariable. Aby uzyskać więcej informacji, zobacz about_CommonParameters.

Dane wejściowe

String

Dane wyjściowe

Process