如何使用ssh与PowerShell中的私钥连接到linux服务器?

问题描述:

我已生成使用的puttygen SSH密钥对,可以成功地从腻子我的私有密钥连接到我的CentOS的服务器在我的Windows 10工作站上:如何使用ssh与PowerShell中的私钥连接到linux服务器?

image of successful connection to CentOS

我想连接到从Windows PowerShell的服务器并装载了Install-Module posh-ssh

我曾尝试与创建一个新的SSH会话的辣妹-SSH模块:

$Credential = Get-Credential 
$KeyFile = 'C:\Users\mark\Documents\ssh\privkey.ppk' 
$sesh = New-SSHSession -ComputerName neon.localdomain -Credential $credential -Keyfile $KeyFile 

我把根和空白密码Get-Credential

我得到这个错误:

New-SSHSession : Invalid private key file.

我试图通过阅读它,并转换为base64编码到的privKey文件将字符串转换,但我得到同样的错误:

​​

我也试过

$sesh = New-SSHSession -ComputerName neon.localdomain -Credential $credential -KeyString $privkeystring 

但得到相同的错误。

有关如何使用PowerShell与私钥文件连接到Linux服务器的任何想法?

New-SSHSession无法识别PuTTY的密钥格式(遗憾的是画廊和项目页面都没有提到这一点,但我发现它在PowerShellMagazine article中)。您需要OpenSSH格式的私钥。你可以用的puttygen convert the private key

  1. 点击文件→加载私钥
  2. 如果密钥受密码保护,请输入密码。
  3. 点击转换→导出OpenSSH密钥
  4. 输入导出密钥的文件名(不覆盖PPK文件)并单击保存
  5. 退出PuTTYgen。

运行New-SSHSession用新的密钥文件:

$computer = 'neon.localdomain' 
$username = 'foo' 
$keyfile = 'C:\path\to\priv_openssh.key' 

$sess = New-SSHSession -Computer $computer -Credential $username -Keyfile $keyfile