【发布时间】:2013-01-27 03:23:51
【问题描述】:
我想在 PowerShell 中加密密码
我试过这个:
在 CLI 中:
Read-Host -prompt "Password ?" -AsSecureString | ConvertFrom-SecureString | out-file "D:\root.pwd"
在我的 script.ps1 中:
$pwsNAS = Get-Content "D:\root.pwd" | ConvertTo-SecureString
plink.exe root@192.168.x.y -pw $pwdNAS df
但它不起作用......
我尝试使用凭据,但似乎并没有更好...
(我的密码没有空格或重音字符)
有什么想法吗?
【问题讨论】:
-
为什么要交出一个“加密”的密码来 plink? plink 不是 putty ssh 客户端实现的一部分吗?距离我上次使用 MS Windows 已经有 10 年了,但我想我记得
-pw选项接受密码,而不是加密密码。 -
这个脚本供个人使用,将在我家人的不同计算机上,如果打开脚本,我不希望他们知道我的 NAS 密码。ps1... PS:我知道计算机和用户必须相同的加密/解密,我会在每个计算机/用户上做这个过程我不知道我是否做得好。事实上,我想在没有可见密码的情况下在 powershell 脚本中使用
plink.exe root@192.168.x.y -pw $pwdNAS df... -
抱歉,尝试以这种方式保护您的凭据是行不通的。您正在做的是混淆,而不是加密。
-
是的,对不起,最后,我想做的是混淆......
-
显然以这种方式保护密码是错误的做法。考虑为此目的使用密钥而不是密码。为每个系统/用户/客户使用不同的密钥。这样您的密码就不会被泄露。并且不要在远程访问中使用
root帐户,实际上强烈建议您禁用通过 ssh 的 root 登录。
标签: powershell password-encryption plink securestring