为 ssh 存储密码的最佳实践

Syn*_*ror 3 linux windows ssh password python

我有一个运行某些脚本的 Ubuntu 服务器,应该通过 ssh 进入 Windows 服务器来执行数据。我正在使用 python 进行开发,并使用 paramiko 进行 ssh。

目前,windows 登录 ssh 密码以纯文本形式提供。

有什么好方法可以存储/检索密码,以便如果有人阅读代码,他们就无法轻松获取密码?

Jak*_*uje 8

最佳做法是不要使用密码。您应该始终使用密钥进行身份验证。

但是,如果在某些代码中以明文形式编写密码或密钥,则您无法阻止使用密码或密钥。虽然您可以很好地限制密钥的使用。在authorized_keys服务器上,您可以简单地指定允许通过密钥执行的命令,这将阻止拥有该密钥的任何人进行 shell 访问。

线路示例~/.ssh/authorized_keys

no-port-forwarding,no-pty,no-X11-forwarding,command="your_limited_command" ssh-rsa AAAA[...]==
Run Code Online (Sandbox Code Playgroud)

更详细的选项描述可以在手册页中找到sshd

  • 稍微澄清一下:命令参数将指定在身份验证后将自动运行哪个命令。不仅仅是定义它是允许的。 (3认同)
  • 我会在密钥中添加客户端 IP 限制 - 这样,如果有人掌握它并不重要,无论如何都不能在另一台机器上使用它。参见例如 http://serverfault.com/questions/507878/limited-ssh-access-for-log-retrieval/507899?s=11|0.5264#507899 (3认同)