使用java来执行scp命令,但是中间要输入远程主机的密码,要怎么处理?

使用java来执行scp命令,但是中间要输入远程主机的密码,要怎么处理才能让命令顺利执行不中断呢?
[b]问题补充:[/b]
能说的具体点么?linux我还不太熟悉,最好能贴个代码过来看看,谢谢!

2个回答

楼主是想用Process.getOutputStream()得到子进程的标准输入流然后把密码写进去么?子进程在没有得到输入的时候会阻塞,而通过标准输入流把信息写过去之后它就能继续执行了……

使用expect这个。可以把密码作为命令写进去。

[code="java"]
#!/user/bin/expect -f

for {set i 1} {$i<=30} {incr i} {
spawn ssh -l root 125.1.1.$i
expect "*password: "
sleep 5
send "QwErT\r"
send "find / -name hao.txt\r"
interact

}
[/code]

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问