如何回答来自 Python 的 ssh-keygen 密码提示?
How to answer the ssh-keygen passphrase prompt from Python?
在 Python 中,我想通过命令 ssh-keygen -y -f
验证一对 public/private 具有密码的密钥。代码如下,
#/usr/bin/env python3
...................
...................
command = "ssh-keygen -y -f {}".format(key1)
args = bytes("%s\n%s\n" % (psw, psw), encoding='utf8')
proc = subprocess.Popen(command, shell=True, stdin=subprocess.PIPE, stdout=subprocess.PIPE)
proc.communicate(input=args)
我以为subprocess.communicate(input=args)
可以用密码回答提示。
但我仍然收到输入密码的提示。
欢迎大家提出意见。
ssh-keygen
-P
switch 提供密码:
command = "ssh-keygen -y -f {} -P \"{}\"".format(key1, passphrase)
当密钥未加密时,可以使用空密码 (-P ""
)。
如果您使用 wrong/empty 密码 (-P "wrong"
),对于加密密钥,ssh-keygen
将失败 – 它不会再次提示您输入正确的密码。
在 Python 中,我想通过命令 ssh-keygen -y -f
验证一对 public/private 具有密码的密钥。代码如下,
#/usr/bin/env python3
...................
...................
command = "ssh-keygen -y -f {}".format(key1)
args = bytes("%s\n%s\n" % (psw, psw), encoding='utf8')
proc = subprocess.Popen(command, shell=True, stdin=subprocess.PIPE, stdout=subprocess.PIPE)
proc.communicate(input=args)
我以为subprocess.communicate(input=args)
可以用密码回答提示。
但我仍然收到输入密码的提示。
欢迎大家提出意见。
ssh-keygen
-P
switch 提供密码:
command = "ssh-keygen -y -f {} -P \"{}\"".format(key1, passphrase)
当密钥未加密时,可以使用空密码 (-P ""
)。
如果您使用 wrong/empty 密码 (-P "wrong"
),对于加密密钥,ssh-keygen
将失败 – 它不会再次提示您输入正确的密码。