【问题标题】:Can one PowerShell SSH without storing key on disk?一个 PowerShell SSH 可以不将密钥存储在磁盘上吗?
【发布时间】:2021-11-25 03:06:57
【问题描述】:

如何在 Azure 中创建从 Windows10 VM 到 RHEL8 VM 的 PowerShell 会话而不将 SSH 密钥存储在磁盘上? 看起来New-PSSession cmdlet 不接受 SSH 密钥作为字符串。

$pssession = New-PSSession -Name RHELSession -HostName <> -Port 22 -Subsystem powershell -UserName <> -KeyFilePath .\<>.pem -SSHTransport
Invoke-Command -Session $pssession -ScriptBlock {hostname}

一个Get-AzSshKeyGet-AzKeyVaultSecret 可以在不将.pem 文件存储在磁盘上的情况下从内存中提供密钥吗?

(Get-AzSshKey -ResourceGroupName <> -Name <>).publicKey

【问题讨论】:

  • SSH.NET 程序集支持从内存中加载密钥。

标签: powershell windows-10 azure-keyvault ssh-keys


【解决方案1】:

你是对的,New-PSSession 目前(pwsh v7.1)只允许从文件加载 SSH 密钥。已经有 some requests 添加该功能,但使用 PSSession cmdlet 启动 SSH 会话仍然非常有限。

目前,使用基本的ssh.exe 更直接,应该能够完成您想要的操作。

【讨论】:

  • 感谢您的指出。库中是否有任何其他 cmdlet 可以将密钥作为字符串接受,还是 PowerShell 限制?
  • @AyanMullick Posh-SSH 可能允许字符串值,但我自己没有测试过。大多数只是 Windows OpenSSH 客户端的包装器,它似乎不支持从命令行加载密钥。
  • 它接受密钥作为字符串。但随后也会提示输入密码。 New-SSHSession -ComputerName &lt;&gt; -Port 22 -Credential &lt;&gt; -KeyString $(Get-AzSshKey -ResourceGroupName &lt;&gt; -Name &lt;&gt;).publicKey -AcceptKey 无法正常工作。
猜你喜欢
  • 1970-01-01
  • 2012-12-27
  • 1970-01-01
  • 2018-12-27
  • 2023-03-13
  • 2021-05-20
  • 2016-06-10
  • 1970-01-01
  • 2014-11-16
相关资源
最近更新 更多