如何使用ssh与PowerShell中的私钥连接到linux服务器?
问题描述:
我已生成使用的puttygen SSH密钥对,可以成功地从腻子我的私有密钥连接到我的CentOS的服务器在我的Windows 10工作站上:如何使用ssh与PowerShell中的私钥连接到linux服务器?
我想连接到从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:
- 点击文件→加载私钥。
- 如果密钥受密码保护,请输入密码。
- 点击转换→导出OpenSSH密钥。
- 输入导出密钥的文件名(不覆盖PPK文件)并单击保存。
- 退出PuTTYgen。
运行New-SSHSession
用新的密钥文件:
$computer = 'neon.localdomain'
$username = 'foo'
$keyfile = 'C:\path\to\priv_openssh.key'
$sess = New-SSHSession -Computer $computer -Credential $username -Keyfile $keyfile