当使用ssh-keygen命令时Paramiko挂起

时间:2011-12-22 06:54:55

标签: python unix ssh paramiko

我正在创建一个用户,并希望为该用户设置ssh密钥

我的脚本是

import paramiko

ssh_conn = paramiko.SSHClient()
ssh_conn.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh_conn.load_system_host_keys()
ssh_conn.connect('localhost', username='test', password='test')

cmd = 'ssh-keygen -t dsa'

stdin, stdout, stderr = ssh_conn.exec_command(cmd)
stdin.write('\n')
stdin.flush()
stdin.write('\n')
stdin.flush()
stdin.write('\n')
stdin.flush()

print "Output: ", stdout.read()

但它似乎不起作用

当我在python控制台上将它作为单个语句副本运行时,它可以工作但是当我将它作为单个python脚本运行时,它会挂在最后一行print "Output: ", stdout.read()

请事先提供帮助:)

1 个答案:

答案 0 :(得分:5)

在尝试阅读stdout问题之前:

stdin.channel.shutdown_write()

另请参阅this question以供参考。

相关问题