0

我正在使用带有 pysftp 模块的 Python 脚本连接到 SFTP 服务器。

显然我可以明确地传递我不喜欢的 SFTP 密码。

我的问题:如何替换加密密码的密码以避免有人被世界看到?

4

3 回答 3

1

保持密钥和密码对世界不可见的标准方法不是将它们存储在世界可读的地方。这通常意味着不要将它们放在您的脚本中,而是将它们放在诸如netrc之类的配置文件中,而这些文件又设置为只能由您读取。更现代的替代方案是密钥环服务,例如 kwallet。

此外,SSH(及其子协议 SFTP)支持使用非对称密钥加密的身份验证。通过使用身份验证代理,您可以将这些密钥保存在单独的进程中,因此您的脚本不需要首先解密或存储它们的能力。

SSH 代理和密钥环服务都支持对密钥存储本身进行加密,尽管从向它们请求密钥的程序中隐藏了是否这样做(以及在哪里)。

于 2014-09-29T06:34:13.017 回答
0

您的意思是您不希望密码在代码或配置文件中可见吗?无法以允许自动解密的方式加密任何内容。您所能做的就是混淆密码,而不是真正加密它。如果有人可以访问您的代码,他/她总是可以对您的“加密”进行逆向工程。

于 2014-09-26T06:22:37.713 回答
-2

我找到了这个问题的解决方案。这个对我有用。我没有使用显式密码文本,而是首先对其进行编码并将编码形式放入脚本中。

像这样:

import base64

## To encrypt:
base64.b64encode("XYZ")
## you got 'WFla'

## To decrypt:
base64.b64decode("WFla")
# you got 'XYZ'
于 2014-09-26T19:27:58.990 回答