1

我要做的是在 Windows 上使用 Putty(或其他解决方案)连接到 SAN 交换机并从带有 ssh 的命令中获取结果。

我使用 Powershell 作为脚本语言,它可以很容易地完成,但我不想在脚本中保存密码。

我正在寻找一种从命令行使用Putty并在脚本中设置未明文存储的密码的解决方案。

我的想法是启动脚本\RUNAS(通过计划任务)启动脚本并将实际凭据直接传递给 Putty。(开关将与 Runas 使用的帐户具有相同的密码)。那可能吗?

或者有什么解决方案使用带有证书的腻子或类似的东西?

4

4 回答 4

4

You may want to consider using key authentication as opposed to a password.

People will say use a password in addition to the key, but if your alternative is storing the password on your PC in a file anyway, someone with access to your machine owns you in either case.. So you just need to generate the keys. The requirement is: no-one but you has access to that key file.

http://www.linuxproblem.org/art_9.html

I'm in the same boat, have to use Windows, but for me www.mingw.org which gives you a shell, and the basic *nix tools - extremely useful for SSH, connect to remote Linux VPS, etc.. Cygwin, of course which is similar, and has an easier tool (setup.exe if I recall) to install new apps. I actually use git-bash with is mingw with git. No-GUIs. I've found this easy to just drop to the mingw shell when I need to use ssh openssl cut awk etc..

So running any remote command using SSH from the command line without third-party programs like Putty, or those with GUIs, etc.. Using the key authentication and offing password auth completely in ssh on the remote device (at least on devices where you have control) is some additional lockdown for the remote device, especially if you're the only one need access it.

Which leaves, scheduling the script. There should be a way to do that via batch file and Windows or within the command line environment.

于 2013-09-21T18:38:02.553 回答
2

这可能不是您正在寻找的答案,但我不会为此使用 Putty,而是宁愿使用SSH.NET library直接与 SSH 服务器通信。它以源代码和二进制形式提供,如果您愿意,也可以从 PowerShell 中使用它。

示例:http ://sshnet.codeplex.com/wikipage?title=Draft%20for%20Documentation%20page 。

然后,您将有很多选择来安全地存储您的登录凭据。

于 2013-09-21T01:28:20.210 回答
2

我会建议以下选项:

  1. 使用密码验证。将带有密码的文本文件存储在访问受限的文件(某些服务帐户)中,并在此帐户的凭据下启动您的脚本
  2. 与上面相同,但不是文本文件,而是使用证书文件
  3. 编写一个小程序 (C#),它使用DPAPI将证书或密码存储在服务帐户特定的存储中。
  4. 将上述任何一项与 BitLocker/EFS 的使用结合起来

没有任何选项可以保护您免受对服务器具有管理员访问权限的攻击者的攻击,但实施它们会给试图破坏它的人带来越来越多的(按数量顺序)头痛。

不过,无论如何,脚本都会是一个弱点。

于 2013-09-17T13:55:33.140 回答
1

如果您无法使用密钥身份验证,我建议您在必须与之通信的 ssh 机器上设置 2 因素身份验证。

谷歌的 2 因素身份验证可以为 ssh 实现,并且只要 SE linux 被禁用就相对容易设置......如果它没有被禁用,你可以添加一个例外,这将基本上有助于降低妥协的风险并增加安全。

于 2013-09-21T19:10:03.443 回答