好的,我无法在任何地方找到同样的问题。所以如果之前有人问我,我会事先道歉。
我需要在不同时间将脚本ssh放入其他设备,为此我需要存储密码。我不想使用纯文本或base64,但我可以使用哈希密码,我没有问题。问题是我不知道如何将哈希作为密码发送到设备。它只是发送哈希,登录被拒绝。
这是写入文件的哈希脚本:
import getpass, hashlib, os
pwf = open('hashes.txt', 'w')
password = getpass.getpass()
hashpass = hashlib.sha256(password).hexdigest()
pfw.write(hashpass)
这是我可以从文件中提取哈希的第二个脚本,但它仍然是一个哈希值。
hashes = open('hashes.txt', 'r')
for pw in hashes:
passwrd = pw.strip()
password = passwrd
这一切都很好,花花公子,但我不能用哈希登录。我确定我在这里做了一些根本错误的事情。请告诉我。
我还遗漏了其他ssh代码,因为我认为它不相关。
答案 0 :(得分:1)
加密哈希的整个要点是将其反转为原始密码是不可行的。如果您需要发送实际密码,哈希将不适合您;你需要使用一个实际的加密算法 - 但是你会遇到类似的问题,即如何存储你用来存储密码的加密密钥。
无论哪种方式,您都需要一种在本地系统上安全存储数据的方法,以防止其他未经授权的用户无法访问。通常,这是通过使用基于密钥的ssh身份验证并将密钥存储为使其无法访问其他用户的权限来完成的。这基本上省略了加密/解密密码的不必要步骤,而只是使用加密密钥作为ssh的身份验证机制。
请注意,存在专为您正在执行的任务而设计的Python库(ssh
到远程系统并自动运行命令) - fabric
就是其中之一。