首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >对Plink/PuTTY使用加密密码

对Plink/PuTTY使用加密密码
EN

Stack Overflow用户
提问于 2017-11-02 07:26:52
回答 3查看 7.2K关注 0票数 3

我想在PowerShell中加密密码,并将其与plinkputty一起使用。

是的,我知道它只需要明文密码(Password encryption using SecureString for plink.exe command)。

不,我不会使用生成的密钥,因为我们不支持它。

我的问题:

  1. 任何建议如何在puttyplink中为putty标志使用加密密码
  2. 我可以生成特定的字符串作为键吗?我的意思是使用当前的明文密码并将其转换为密钥,然后将其用作-i而不是-pw

我的securePass.ps1代码:

代码语言:javascript
运行
复制
$password = read-host -prompt "Enter your Password" 
write-host "$password is password" 
$secure = ConvertTo-SecureString $password -force -asPlainText 
$bytes = ConvertFrom-SecureString $secure 
$bytes | out-file C:\encrypted_password1.txt

主要是:

代码语言:javascript
运行
复制
$securePass = Get-Content C:\encrypted_password1.txt
$pass = $securePass | ConvertTo-SecureString
plink -batch -ssh $defUser@$srv -pw $pass
putty -ssh $defUser@$srv -pw $pass
EN

Stack Overflow用户

回答已采纳

发布于 2017-11-02 07:44:11

如您所知,您不能对PuTTY/Plink使用加密密码(SecureString)。

您所能做的就是解密安全字符串,并将解密后的纯文本密码传递给PuTTY/Plink。

有关解密,请参见PowerShell - Decode System.Security.SecureString to readable password

代码语言:javascript
运行
复制
$securePass = Get-Content C:\encrypted_password1.txt
$pass = $securePass | ConvertTo-SecureString

$Ptr = [System.Runtime.InteropServices.Marshal]::SecureStringToCoTaskMemUnicode($pass)
$decrypted = [System.Runtime.InteropServices.Marshal]::PtrToStringUni($Ptr)
[System.Runtime.InteropServices.Marshal]::ZeroFreeCoTaskMemUnicode($Ptr)
plink -batch -ssh $defUser@$srv -pw $decrypted 

PuTTY 0.77 Plink新支持 switch,它允许更安全地通过本地文本文件传递密码(同时仍然是纯文本)。

你的问题2)没有任何意义。你写的你不能用钥匙。所以您不能使用-i交换机。更别提使用一些“生成的密码”了。

票数 3
EN
查看全部 3 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47069785

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档