Running commands over ssh with Java
ScEnvii:我想通过SSH在Java程序上运行远程机器上的命令(我在我的开发机器上使用OpenSSH)。我还希望通过传递密码来建立ssh连接,而不是像使用"expect"那样设置密钥。问题:当尝试执行"expect"类密码登录时,使用ProcessBuilder创建的进程似乎看不到密码提示。当运行常规的非ssh命令(例如"ls")时,我可以获取流并与它们进行良好的交互。我将标准错误和标准输出与
提前感谢您的帮助!
这提示可能是只读的显示一个tty
有可能是一个供应的密码的方式在你的
alternately,考虑直接从主机服务器连接到本地的Java代码,而不是运行的外部应用程序。有一个百万库这样做。
使用外部程序,而不需要使用SSH,为什么Java SSH库:
- trilead
- JTA
我找到了两个谷歌是那会避免问题非常硬,OpenSSH将工作上的密码输入,以防止进入它会直接打开终端。安切洛蒂很难期望工作在模拟一阶和TTY。
例子:在塞湖学院执行过sshj SSH使用a命令
为什么需要使用Java SSH客户端?这是一个BSD许可,和列在这里有更多的客户。
一个最安全的程序不要使用标准输入/输出对捕获的密码,他们捕捉的tty或一些等效方法。
引用他人的建议使用a Java SSH文库。我想我对科恩的响应。在命令行发送密码,当建立连接是不允许的,所以insecure和sshd服务器(基于配置)。
你可能想看看这一启动键设置,那么你可以将SSH命令在机器没有密码。
基本步骤使用OpenSSH创建KeyPair(i做RSA,但我知道有一个更好的方法。创建文件夹在你的home目录a。在源机器创建文件夹在你的home目录a。在目标机器保持您的私人密钥-在你的机器的源文件夹。拷贝你的文件被复制到一个公共密钥_键在目标文件夹的。
一些说明可以在这里找到
采取一看我们最近发布的主机,这是基于Apache的MINA的项目。
我已经使用trilead SSH客户端有很多成功。所以我想jsch(另一个Java SSH隧道客户端和客户端在本地的SSH的Linux。什么是最好的trilead远。
你可以使用运行命令edtftpj /表演,工作人员通过SFTP文件传输。它的Java。