带有 python 子进程的 ssh-keygen

ssh-keygen with python subprocess

我正在尝试使用 python.

生成要在 github 和 bitbicket 和 gitlab 上使用的 ssh 密钥

通常我从 cli 生成 ssh-keygen -q -t rsa -N '' -f ~/.ssh/test_rs <<<y >/dev/null 2>&1

现在我正在转换成 python 但它不起作用 这是我的 pthon 代码:

       subprocess.run([
            'ssh-keygen',
            '-q',
            '-t',
            'rsa',
            '-N',
            '-f',
            '~/.ssh/test_rs',
            '<<<y',
            '>/dev/null',
            '2>&1'
        ], check=True, capture_output=True)   

当我 运行 以上代码时出现以下错误:

Command '['ssh-keygen', '-q', '-t', 'rsa', '-N', '-f', '/home/py/.ssh/test_rsa', '<<<y', '>/dev/null', '2>&1']' returned non-zero exit status 1.
 

有人知道这个问题吗?

试试看导致退出的错误消息是什么。

out = subprocess.run([
            'ssh-keygen',
            '-q',
            '-t',
            'rsa',
            '-N',
            '-f',
            '~/.ssh/test_rs',
            '<<<y',
            '>/dev/null',
            '2>&1'
        ], check=False, capture_output=True)   

print(out.stderr)