-
使用java来执行scp命令,但是中间要输入远程主机的密码,要怎么处理?5
使用java来执行scp命令,但是中间要输入远程主机的密码,要怎么处理才能让命令顺利执行不中断呢?
问题补充:
能说的具体点么?linux我还不太熟悉,最好能贴个代码过来看看,谢谢!2009年3月16日 19:31
2个答案 按时间排序 按投票排序
-
采纳的答案
楼主是想用Process.getOutputStream()得到子进程的标准输入流然后把密码写进去么?子进程在没有得到输入的时候会阻塞,而通过标准输入流把信息写过去之后它就能继续执行了……
2009年3月16日 21:01
-
使用expect这个。可以把密码作为命令写进去。
#!/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 }
2009年3月17日 14:22
相关推荐
参考expect4j的交互式操作方式控制输入输出流实现批量执行多条shell命令同时支持切换用户输入密码提权执行命令输入密码等操作 有完整的测试用例,便于理解 模板化执行命令示例 [$]send[su - root] [Password:]...
在Linux系统中,SSH(Secure Shell)是一种广泛使用的网络协议,用于在不安全的网络上安全地执行远程命令和传输数据。通常,SSH连接需要用户输入密码进行身份验证,但频繁输入密码会降低效率,特别是在自动化脚本中...
Java SCP(Secure Copy)实现方式主要涉及在Java中使用SSH(Secure Shell)协议来安全地传输文件。SCP是基于SSH的文件传输协议,它提供了在不同主机之间安全复制文件的功能。在Java中实现SCP通常会借助第三方库,如...
接下来,我们将编写一个简单的Java程序来演示如何使用Ganymed SSH2库实现远程登录Linux服务器并执行命令。 #### 1. 创建Connection对象 ```java // 创建Connection实例 Connection conn = new Connection(hostname...
在SHELL脚本中,我们可以通过`ssh user@remote_host command`来执行远程主机上的命令,其中`user`是远程主机的用户名,`remote_host`是远程主机的IP地址或域名,`command`是要执行的命令。 2. **Perl脚本执行**:...
2. `sshexec`任务:用于在远程主机上执行命令。你可以设置命令、主机信息、认证方式等。 ```xml ``` 3. `sftp`任务:用于在本地和远程主机之间上传或下载文件。它类似`scp`,但更适用于目录操作。 ```xml ...
在`ExecuteRemoteShell.java`中,上述代码应该被封装在一个方法里,该方法接受必要的参数(如用户名、主机、密码/私钥文件、脚本路径等),并处理SSH连接的建立、命令执行和关闭。这使得在不同场景下复用代码变得...
JSch 是一个纯 Java 实现的 SSH2 客户端库,它提供了对 SFTP(SSH 文件传输协议)的支持,同时也支持 SCP 命令,允许 Java 应用程序安全地在本地和远程主机之间复制文件。使用 JSch,你可以创建 SSH 连接,执行命令...
JSch库提供了一个API,允许开发者编写代码来执行SCP命令。下面是一个简单的示例,展示如何使用JSch上传文件到远程服务器: ```java import com.jcraft.jsch.*; public class ScpToServer { public static void ...
Java开发中的远程调试是一项至关重要的技能,特别是在处理生产环境的问题或者协作开发时。它允许开发者在不中断服务的情况下,直接在远程服务器上查看程序运行状态,设置和触发断点,以便于定位和修复问题。以下将...
5. **会话管理**:SSHJ的`Session`对象代表一个到远程主机的连接,可以在这个会话上执行命令、建立SCP或SFTP连接。 6. **事件监听**:SSHJ允许注册事件监听器,以便在连接、认证、通道打开等关键事件发生时接收通知...
- **命令行操作**:连接成功后,用户可以像在本地终端一样输入各种命令,执行远程主机上的操作。 - **文件传输**:JTA通常内置了SCP(Secure Copy)或SFTP(Secure File Transfer Protocol),允许用户安全地上传...
为了安全起见,实际部署时应避免将"StrictHostKeyChecking"设置为"no",这样会导致系统接受任何主机的密钥,增加了被中间人攻击的风险。更好的做法是将密钥的指纹添加到known_hosts文件中,或者在代码中对特定的主机...
3. **创建SCP任务**: 使用`scp`任务,并指定文件或目录、远程主机信息以及其他可选参数。 ```xml <scp file="local_file" todir="${username}:${password}@${host}:${target.dir}" trust="true" sftp="true" /> ...
这两个库允许Java应用程序通过SSH协议连接到远程主机,执行命令,甚至传输文件。ganymed-ssh2是一个开源项目,提供了SSH2协议的纯Java实现,而jsch则是一个广泛使用的Java SSH API,支持SFTP、SCP和SSH命令的执行。 ...
标题“ant使用scp上传文件问题”涉及到的是在Java构建工具Ant中使用Secure Copy (SCP)协议来传输文件的场景。SCP是一种基于SSH的安全文件传输协议,常用于在不同主机之间安全地复制文件。在这个问题中,用户可能遇到...
JSch是一个纯Java实现的SSH2库,它允许Java开发者执行命令、打开shell、建立SCP和SFTP(SSH File Transfer Protocol)连接。以下是一些关于Java SSH2整合的关键知识点: 1. **JSch库的引入**:首先,你需要在项目中...
SCP是一种在Unix-like系统(包括Linux)和Apple macOS上广泛使用的命令行工具,用于安全地在本地主机与远程主机之间传输文件。它基于SSH(Secure Shell)协议,提供了加密的数据传输,确保了数据的安全性。在Windows...
下面是一段基本的Java代码示例,展示了如何使用JSch连接到远程Linux服务器并执行一个简单的Shell命令: ```java import com.jcraft.jsch.*; public class SSHExecutor { public static void main(String[] args) ...
PuTTY利用SSH协议,提供了安全的远程终端会话,让用户可以像坐在本地计算机前一样操作远程主机,执行命令、管理文件等。 **PuTTY的功能特性** 1. **多协议支持**:除了SSH,PuTTY还支持Telnet和Serial等协议,满足...