Ami*_*Pal 5 python django ssh paramiko ssh-keys
我正在使用paramiko,我已经生成了我的私钥并尝试了它很好.现在我正在使用基于Django的应用程序,我已经在数据库中复制了私钥.
我charField
在Django模型中保存了我的私钥.我在以下代码中遇到问题:
host = "192.154.34.54"
username = "lovestone"
port = 25
pkey = "------" # I saved my key in this string
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(server, username=username, port=port, pkey=?)
Run Code Online (Sandbox Code Playgroud)
在这种情况下我该怎么办?SSH.connect
当我将私钥存入string
数据库时,我应该如何传递私钥?
即使我不能使用IO,即从数据库中获取密钥并将其写入文件,然后使用保存的文件对象并传入,from_private_key(cls, file_obj, password=None)
enter code here
因为这是基于Web的应用程序,它不是通用密钥.每个用户都拥有自己的私钥.
如果你不能将私钥保存到文件,这将是使用StringIO的主要原因:StringIO接受一个字符串并将其转换为类文件对象,但没有任何内容写入文件系统.当你拥有的只是一个字符串时,它允许你传入类似文件的对象:就像这样的情况.
import paramiko, StringIO
key_string = "------" # I saved my key in this string
not_really_a_file = StringIO.StringIO(key_string)
private_key = paramiko.RSAKey.from_private_key(not_really_a_file)
not_really_a_file.close()
Run Code Online (Sandbox Code Playgroud)
这适用于我,你应该能够连接到该对象:
client = paramiko.SSHClient()
client.set_missing_key_policy(paramiko.AutoAddPolicy())
client.connect(host="example.com", username="root", pkey=private_key)
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3903 次 |
最近记录: |