千家信息网

如何使用Ant进行ssh和scp操作

发表于:2026-11-04 作者:千家信息网编辑
千家信息网最后更新 2026年11月04日,今天就跟大家聊聊有关如何使用Ant进行ssh和scp操作,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。使用Ant进行ssh和scp操作一、简介
千家信息网最后更新 2026年11月04日如何使用Ant进行ssh和scp操作

今天就跟大家聊聊有关如何使用Ant进行ssh和scp操作,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

使用Ant进行ssh和scp操作

一、简介:

  现在我们安装Linux的时候通常考虑到安全因素(默认情况下)是不打开telnet服务的,而ssh服务是有的,ant很早就支持telnet,但要求我们在Linux下要安装telnet-server,并要启用该服务。

还好自Ant1.60开始支持了SSH 及SCP 操作了,早在Ant之前若要支持SSH、SCP、SFTP等任务就必须下载j2ssh的j2ssh-ant.jar和j2ssh-core.jar(在http://www.sourceforge.net的j2ssh下有下载)。现在可以使用Ant提供的Sshexec和scp任务,由$ANT_HOME/lib/ant-jsch.jar提供支持,但是同样你也要在http://www.jcraft.com/jsch/index.html下载一个依赖包jsch-0.1.24.jar(文件名因版本而不同),jsch同样也是http://www.sourceforge.net下的一个项目。

你需要把下载的jsch-0.1.24拷贝到$ANT_HOME/lib下,如果是Eclipse下的Ant环境必须在Window->Preferences->Ant->Runtime->Classpath中加入jsch-0.1.24。

JSch是一个SSH2的纯Java实现

JSch允许你连接到sshd server并采用端口映射,X11映射; Scp文件传输等,你可以把集成JSch提供的功能到你自己的Java项目中,JSch 的授权方式为 BSD形式。

二、简单例子:

  下面是用JSch完成Sshexec和scp两个任务的最简单例子,如果需要更详细的内容,请参考Ant用户手册

[Sshexec任务]

trust="true" command="cd /;ls" />

注意上面的trust属性一般设置为true, 如果为默认值false时,那么就要求你所连接的host必须存在于你的knownhosts文件中,并且这个文件也必须是存在的,否则会出现 com.jcraft.jsch.JSchException: reject HostKey: 192.168.122.180异常。执行Linux下的命令时可以用分号";"把多个命令隔开,它们将会依次执行,而不需要写多个sshexec进行多次连接,每次连接只执行一个命令。

[scp任务]<远程以根目录计算>

1.拷贝单个文件到远端服务器

或

2.拷贝远端文件本地

3.拷贝远端目录到本地,将以递归形式操作

4.拷贝本地目录中的内容到远端,递归形式,但不在服务器上建立my-app目录

5.拷贝一系列的文件到远端,会建立相应的层次目录,不建立my-app目录

或

三、其他例子:

例子1:

username="Linux server username"

password="Linux server password" trust="true"

command="Command you want to run on the server" />

例子2:

import com.jcraft.jsch.Channel;

import com.jcraft.jsch.ChannelSftp;

import com.jcraft.jsch.JSch;

import com.jcraft.jsch.Session;

import com.jcraft.jsch.UserInfo;

public class ExecSCP {

public static final UserInfo defaultUserInfo = new UserInfo() {

public String getPassphrase() {

return null;

}

public String getPassword() {

return null;

}

public boolean promptPassword(String arg0) {

return false;

}

public boolean promptPassphrase(String arg0) {

return false;

}

public boolean promptYesNo(String arg0) {

return true;

}

public void showMessage(String arg0) {

}

};

public static void main(String[] args) throws Exception {

String hostname = "10.14.50.63";

String username = "abs";

String password = "abs";

String remoteFile = "asbpack.sh";

String localFile = "C:\\";

JSch jsch = new JSch();

/**

* 22为端口

*/

Session session = jsch.getSession(username, hostname, 22);

session.setPassword(password);

session.setUserInfo(defaultUserInfo);

session.connect();

Channel channel = session.openChannel("sftp");

channel.connect();

ChannelSftp c = (ChannelSftp) channel;

c.get(remoteFile, localFile);

session.disconnect();

}

}

看完上述内容,你们对如何使用Ant进行ssh和scp操作有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注行业资讯频道,感谢大家的支持。

文件 拷贝 任务 例子 内容 目录 支持 服务 命令 形式 多个 服务器 端口 项目 递归 不同 安全 下有 两个 分号 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 小米移动互联网科技园 广州大一互联网络科技有限公司 互联网科技英文 齐家互联网科技 极限挑战互联网科技 致聘互联网科技 四个字互联网科技公司取名 小米互联网科技园设置 团飞科技与伯堂互联网服务平台 互联网和黑科技的看法 花神(南京)互联网科技有限公司 移动互联网年度科技创新 链环科技传统企业怎么转型互联网 畅思互联网科技 玉溪新华互联网科技好不好 恒生互联网科技业指数调整周期 伍佰万互联网科技怎么赚钱 图游互联网科技 互联网科技包装股 众联互联网络科技 互联网科技卖菜 互联网科技视频 互联网科技有限公司 翻译 深圳市运趣互联网科技有限公司 互联网科技公司需要的职位 济南华为互联网科技产业总部基地 成都铂石互联网科技做什么的 浙江互联网科技研学营 江苏苏星互联网科技有限公司 亚光科技低轨卫星互联网
0