New-AzSftpCertificate
Este cmdlet forma parte de un módulo de versión preliminar . No se recomienda usar versiones preliminares en entornos de producción. Para obtener más información, consulte https://aka.ms/azps-refstatus.
Genere certificados SSH para la autenticación SFTP mediante credenciales de Microsoft Entra.
Sintaxis
Default (valor predeterminado)
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
El cmdlet New-AzSftpCertificate genera certificados SSH para la autenticación SFTP mediante las credenciales de Microsoft Entra actuales. Este cmdlet proporciona los mismos métodos de autenticación y conjuntos de parámetros que el módulo Az.Ssh, lo que garantiza la coherencia entre los módulos de Azure PowerShell.
El cmdlet admite cuatro modos de autenticación que se alinean con el módulo SSH:
Default Mode (autenticación Microsoft Entra): cuando no se proporciona ningún archivo de clave específico, el cmdlet genera automáticamente un nuevo par de claves SSH y crea un certificado firmado por la ENTIDAD de certificación de confianza de Microsoft Entra. Este es el enfoque más sencillo para empezar a trabajar con la autenticación SFTP.
FromPublicKey Mode: cuando se proporciona un archivo de clave pública, el cmdlet genera un certificado para esa clave específica mediante credenciales de Microsoft Entra. Esto resulta útil cuando ya tiene claves públicas SSH y quiere usarlas para Azure Storage acceso SFTP.
FromPrivateKey Mode: Cuando se proporciona un archivo de clave privada, el cmdlet genera la clave pública correspondiente y crea un certificado con credenciales de Microsoft Entra. Esto resulta útil cuando tiene claves privadas existentes y desea crear certificados para ellas.
Modo LocalUser: cuando se especifica un usuario local, el cmdlet genera un certificado adecuado para la autenticación de usuario local en cuentas de almacenamiento. Esto se puede combinar con claves privadas existentes o generar nuevas, que coincidan con las funcionalidades de certificado de usuario local del módulo SSH.
Los certificados generados suelen ser válidos durante 1 hora y se pueden usar con cualquier cliente SFTP que admita la autenticación de certificados SSH. La entidad de certificación de confianza de Microsoft Entra firma los certificados y las aceptarán Azure Storage cuentas en las que la identidad de Microsoft Entra tenga los permisos adecuados.
Debe iniciar sesión en Azure con una cuenta que tenga los permisos de RBAC adecuados (como Colaborador de datos de Storage Blob o Propietario de datos de Storage Blob) en las cuentas de almacenamiento de destino.
Ejemplos
Ejemplo 1: Generación de certificados con generación automática de claves
New-AzSftpCertificate
Este comando genera un nuevo par de claves SSH y crea un certificado firmado por Microsoft Entra. El par de claves y el certificado se guardan en el directorio temporal del sistema con nombres de archivo generados automáticamente. Esta es la manera más sencilla de empezar a trabajar con la autenticación SFTP.
Ejemplo 2: Generación de un certificado con la ruta de acceso personalizada
New-AzSftpCertificate -CertificatePath "C:\certs\azure-sftp.cert"
Este comando genera un nuevo par de claves SSH y crea un certificado, guardando el certificado en la ruta de acceso especificada. Las claves privadas y públicas se guardarán en el mismo directorio con los nombres correspondientes (azure-sftp y azure-sftp.pub).
Ejemplo 3: Generación de certificados a partir de una clave privada existente
New-AzSftpCertificate -PrivateKeyFile "C:\keys\id_rsa" -CertificatePath "C:\certs\id_rsa.cert"
Este comando genera un certificado a partir de una clave privada SSH existente. El cmdlet derivará automáticamente la clave pública de la clave privada y creará un certificado firmado por Microsoft Entra. Esto resulta útil cuando tiene claves privadas existentes y quiere crear certificados para ellas.
Ejemplo 4: Generación de certificados a partir de una clave pública existente
New-AzSftpCertificate -PublicKeyFile "C:\keys\id_rsa.pub" -CertificatePath "C:\certs\id_rsa.cert"
Este comando genera un certificado a partir de una clave pública SSH existente. Esto resulta útil cuando desea crear certificados para las claves públicas existentes que ya están configuradas en las cuentas de almacenamiento.
Ejemplo 5: Generación de un certificado para la autenticación de usuario local
New-AzSftpCertificate -LocalUser "sftpuser" -CertificatePath "C:\certs\localuser.cert"
Este comando genera un certificado adecuado para la autenticación de usuario local en cuentas de almacenamiento. Se genera un nuevo par de claves y el certificado se configura para el usuario local especificado. Esto se alinea con las funcionalidades de autenticación de usuario local del módulo SSH.
Ejemplo 6: Generación de un certificado para el usuario local con una clave privada existente
New-AzSftpCertificate -LocalUser "sftpuser" -PrivateKeyFile "C:\keys\existing_key" -CertificatePath "C:\certs\localuser.cert"
Este comando genera un certificado para la autenticación de usuario local mediante una clave privada existente. Esto resulta útil cuando desea usar claves específicas para la autenticación de usuario local en cuentas de almacenamiento.
Ejemplo 7: Generación de certificados con rutas de acceso automáticas
$cert = New-AzSftpCertificate
Write-Host "Certificate: $($cert.CertificatePath)"
Write-Host "Private Key: $($cert.PrivateKeyPath)"
Write-Host "Valid Until: $($cert.ValidUntil)"
Este comando genera un certificado con la generación automática de claves y rutas de acceso de archivo temporales. El objeto devuelto contiene todas las rutas de acceso de archivo y la información del certificado, lo que facilita el uso mediante programación.
Ejemplo 8: Generación de certificados y uso con 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)"
En este ejemplo se muestra el flujo de trabajo completo de generar un certificado y usarlo inmediatamente para la conexión SFTP, que muestra la integración entre los dos cmdlets.
Ejemplo 9: Generación de un certificado con la ubicación de cliente SSH personalizada
New-AzSftpCertificate -CertificatePath "C:\certs\custom-cert.pub" -SshClientFolder "C:\Program Files\OpenSSH"
Este comando genera un certificado mediante ejecutables SSH desde una ubicación específica. Esto resulta útil cuando tiene varias implementaciones ssh instaladas o cuando ssh-keygen no está en la ruta de acceso predeterminada.
Parámetros
-CertificatePath
Ruta de acceso a la que escribir el certificado SSH.
Propiedades de parámetro
| Tipo: | String |
| Valor predeterminado: | None |
| Admite caracteres comodín: | False |
| DontShow: | False |
| Alias: | Archivo de salida, o |
Conjuntos de parámetros
(All)
| Posición: | Named |
| Obligatorio: | False |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | False |
| Valor de los argumentos restantes: | False |
-Confirm
Le pide confirmación antes de ejecutar el cmdlet.
Propiedades de parámetro
| Tipo: | SwitchParameter |
| Valor predeterminado: | None |
| Admite caracteres comodín: | False |
| DontShow: | False |
| Alias: | cf |
Conjuntos de parámetros
(All)
| Posición: | Named |
| Obligatorio: | False |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | False |
| Valor de los argumentos restantes: | False |
-DefaultProfile
Las credenciales, la cuenta, el inquilino y la suscripción que se usan para la comunicación con Azure.
Propiedades de parámetro
| Tipo: | IAzureContextContainer |
| Valor predeterminado: | None |
| Admite caracteres comodín: | False |
| DontShow: | False |
| Alias: | AzContext, AzureRmContext, AzureCredential |
Conjuntos de parámetros
(All)
| Posición: | Named |
| Obligatorio: | False |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | False |
| Valor de los argumentos restantes: | False |
-Force
Obliga a que el comando se ejecute sin pedir confirmación del usuario para sobrescribir los pares de claves SSH existentes.
Propiedades de parámetro
| Tipo: | SwitchParameter |
| Valor predeterminado: | None |
| Admite caracteres comodín: | False |
| DontShow: | False |
Conjuntos de parámetros
(All)
| Posición: | Named |
| Obligatorio: | False |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | False |
| Valor de los argumentos restantes: | False |
-LocalUser
Nombre de usuario de un usuario local en la cuenta de almacenamiento de destino.
Propiedades de parámetro
| Tipo: | String |
| Valor predeterminado: | None |
| Admite caracteres comodín: | False |
| DontShow: | False |
Conjuntos de parámetros
LocalUser
| Posición: | Named |
| Obligatorio: | True |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | False |
| Valor de los argumentos restantes: | False |
-PrivateKeyFile
Ruta de acceso al archivo de clave privada.
Propiedades de parámetro
| Tipo: | String |
| Valor predeterminado: | None |
| Admite caracteres comodín: | False |
| DontShow: | False |
| Alias: | i |
Conjuntos de parámetros
Default
| Posición: | Named |
| Obligatorio: | False |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | False |
| Valor de los argumentos restantes: | False |
LocalUser
| Posición: | Named |
| Obligatorio: | False |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | False |
| Valor de los argumentos restantes: | False |
-PublicKeyFile
Ruta de acceso al archivo de clave pública.
Propiedades de parámetro
| Tipo: | String |
| Valor predeterminado: | None |
| Admite caracteres comodín: | False |
| DontShow: | False |
| Alias: | p |
Conjuntos de parámetros
FromPublicKey
| Posición: | Named |
| Obligatorio: | True |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | False |
| Valor de los argumentos restantes: | False |
-SshClientFolder
Directorio que contiene ejecutables SSH (ssh-keygen).
Propiedades de parámetro
| Tipo: | String |
| Valor predeterminado: | None |
| Admite caracteres comodín: | False |
| DontShow: | False |
Conjuntos de parámetros
(All)
| Posición: | Named |
| Obligatorio: | False |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | False |
| Valor de los argumentos restantes: | False |
-WhatIf
Muestra lo que sucedería si el cmdlet se ejecuta. El cmdlet no se ejecuta.
Propiedades de parámetro
| Tipo: | SwitchParameter |
| Valor predeterminado: | None |
| Admite caracteres comodín: | False |
| DontShow: | False |
| Alias: | wi |
Conjuntos de parámetros
(All)
| Posición: | Named |
| Obligatorio: | False |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | False |
| Valor de los argumentos restantes: | False |
CommonParameters
Este cmdlet admite los parámetros comunes: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction y -WarningVariable. Para obtener más información, vea about_CommonParameters.