[英]Send Data From C program to Command Line Password Prompt
ssh命令行命令提示用户输入密码,如下所示:
密码:
在C中,当我这样做时:
system("ssh name@host");
system("password");
命令行将提示用户并忽略来自我的程序的任何输入。 似乎总是接受用户输入的输入。 有没有办法重定向我正在输入stdout的输出并将其输入到ssh的密码提示中?
我已经尝试了各种各样的东西,从上面到将ssh视为文件指针,如下所示:
FILE *ssh = popen("ssh -t -t -S -o StrictHostKeyChecking=no name@host", "w");
然后写入该文件指针但似乎没有工作。
确实。 SSH将打开/dev/tty
并直接从中读取密码,因此你无法以任何方式传递它。 我知道除了使用libssh2
之外,没有办法覆盖这种行为,正如shiplu所说。
还有另一种方法可以解决您的问题 - ssh-keygen
和ssh-copy-id
。
基本上,您将公钥复制到主机一次; 在此之后的任何连接上, ssh
将自动使用其私钥登录。
跑
ssh-keygen
点击进入3次。 跑:
ssh-copy-id user@host
然后输入您的密码。
而已。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.