C程序调用system启动rsync,密码不知道怎么输入。

Jackindata
博客专家认证
2012-08-29 02:54:27

在Linux系统中,当前目录下有一个静态编译好的rsync,执行./rsync然后输入密码是能够正常运行的。现在我在C程序中调用system("./rsync -vzr dir1 192.168.1.11:/root/dir2"); shell终端提示我要输入密码,但是我不知道该怎么样在C程序里把密码输入。


...全文
352 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
Jackindata 2012-08-31
  • 打赏
  • 举报
回复

我也看到过有用expect来实现密码输入的。但是开发板的剪裁过的Linux系统也不支持这个expect 。
Jackindata 2012-08-31
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]

引用 3 楼 的回复:

system("echo password|./rsync -vzr dir1 192.168.1.11:/root/dir2")
或者rsync可以配置成不用密码的


rsync是通过ssh来建立连接的。如果我直接在shell终端下执行 echo 123 | ssh 192.168.1.11 来建立ssh连接,会有如下出错提示:Pseudo-ter……
[/Quote]


ssh 加入-tt 选项就没有那个错误了。执行 echo 123 | ssh -tt 192.168.1.11 还是会提示输入密码,输入密码123后,链接到ssh成功,而且123被当作命令来执行了。而且,用键盘输入其他命令如ls都执行不了。只能Ctrl+c退出ssh返回到本机终端。

Jackindata 2012-08-31
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 的回复:]

设置ssh 不需要密码
1、客户端产生公钥,执型下面命令,按两次【Enter】,产生公钥id_rsa.pub
ssh-keygen -f id_rsa -t rsa
2、上传公钥文件到服务器
scp id_rsa.pub root@xxx.xxx.xxx.xxx:/root/.ssh/authorized_keys
3、保存私钥
cp id_rsa ~.ssh

如果成功,则ss……
[/Quote]


这个方法我试过,但由于我的客户端rsync运行在开发板上,没有ssh-keygen工具。
root_jli 2012-08-31
  • 打赏
  • 举报
回复
设置ssh 不需要密码
1、客户端产生公钥,执型下面命令,按两次【Enter】,产生公钥id_rsa.pub
ssh-keygen -f id_rsa -t rsa
2、上传公钥文件到服务器
scp id_rsa.pub root@xxx.xxx.xxx.xxx:/root/.ssh/authorized_keys
3、保存私钥
cp id_rsa ~.ssh

如果成功,则ssh到服务器不询问密码
Jackindata 2012-08-31
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]

system("echo password|./rsync -vzr dir1 192.168.1.11:/root/dir2")
或者rsync可以配置成不用密码的
[/Quote]

rsync是通过ssh来建立连接的。如果我直接在shell终端下执行 echo 123 | ssh 192.168.1.11 来建立ssh连接,会有如下出错提示:Pseudo-terminal will not be allocated because stdin is not a terminal 。而先执行 ssh 192.168.1.11 再按提示输入密码是可以正常ssh的。
lylm 2012-08-30
  • 打赏
  • 举报
回复
system("echo password|./rsync -vzr dir1 192.168.1.11:/root/dir2")
或者rsync可以配置成不用密码的
jianzhibeihang 2012-08-30
  • 打赏
  • 举报
回复
这个问题有点意思
貌似没啥办法啊
Linux-Torvalds 2012-08-29
  • 打赏
  • 举报
回复
估计这样子很难做到。

23,217

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧