首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用Paramiko自动执行ssh-keygen

使用Paramiko自动执行ssh-keygen
EN

Stack Overflow用户
提问于 2019-04-15 04:22:15
回答 1查看 0关注 0票数 0

我有一个lxd容器master,它有一个IP 10.154.151.8。我想从我的机器ssh-keygen上执行它ssh

代码语言:javascript
复制
import paramiko
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect('10.154.151.8',username='root')
stdin,stdout,stderr = ssh.exec_command('ssh-keygen')

我在这里面临的问题是,在ssh-keygen给出命令后,会询问位置密码(两次)。我通常会做的就是在交互式shell中按enter 三次。但在这里,由于我已经接master通过ssh,我不能这样做。输出是:

代码语言:javascript
复制
Generating public/private rsa key pair.
Enter file in which to save the key (/home/rohit/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /home/rohit/.ssh/id_rsa.
Your public key has been saved in /home/rohit/.ssh/id_rsa.pub.
The key fingerprint is:

所以我试着这样做:

代码语言:javascript
复制
stdin.write("\n")
stdin.write("\n")
stdin.write("\n")

但那并没有创建id_rsa.pub文件。

同样我试过:

代码语言:javascript
复制
stdin.write("") 
stdin.write("") 
stdin.write("") 

但这也不起作用。

那么,我在这里做错了什么?

此外,有没有其他方式(paramiko优选使用),生成id_rsa.pub文件?

任何帮助表示赞赏!

EN

回答 1

Stack Overflow用户

发布于 2019-04-15 13:41:22

不要试图模拟用户输入。

使用-f-N命令行开关ssh-keygen

代码语言:javascript
复制
ssh-keygen -f keyfile -N ""
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/-100009011

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档