linux远程 执行shell

本文介绍了三种通过SSH远程执行命令的方式:一是使用Java实现,易于扩展;二是利用ssh-keygen生成密钥并授权,方便快捷;三是部署PHP脚本在web服务器上执行命令。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

第一种

        java实现  易实现,易扩展(项目中使用)

http://www.ganymed.ethz.ch/ssh2/ 官网

 

	Connection conn = new Connection(ip);
	boolean isAuthenticated = conn.authenticateWithPassword(username, password);
	Session sess = conn.openSession();
	sess.execCommand("ll");
	InputStream stdout = new StreamGobbler(sess.getStdout());
	BufferedReader br = new BufferedReader(new InputStreamReader(stdout));
	System.out.println(sess.getExitStatus());
	sess.close();
	conn.close(); 

 

 

 

第二种

        易实现,但是扩展比较麻烦.(平常的操作中,可以使用)

192.168.168.45 执行 192.168.168.13 上的shell命令

注意此过程不仅可以远程远程执行命令.任何远程操作都无需再输入密码.

原理是  ssh-keygen 和 ssh

1.生成45的密钥,在45上执行

#ssh-keygen -t rsa

会在用户的.ssh目录下(/root/.ssh)生成id_dsa.pub 授权加密文件

2.13授权,把在45上生成id_dsa.pub 复制到13  的/root/.ssh下执行

#cat id_dsa.pub >> ~/.ssh/authorized_keys

3.设置13上文件和目录的权限(保证.ssh和authorized_keys 的权限是600)

设置authorized_keys

#chmod 600 authorized_keys

设置.ssh目录

#chmod 600 -R .ssh

4. 执行远程命令

ssh root@192.168.168.13 "sh /tmp/test.sh"

 

第三种

        易实现不易扩展(而且,安全性需要自己维护)

在apache/hdocs下放php脚本.

在php脚本中执行shell命令.

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值