如何使用java通过ssh的方式登录远程服务器执行命令并返回结果

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用java通过ssh的方式登录远程服务器执行命令并返回结果相关的知识,希望对你有一定的参考价值。

我最近在用java写一个类似pietty的东西,其中遇到几个问题想请教一下大家.1:如果执行cd ..命令后再执行pwd命令时可不可以通过除记录路径以外的方式正确执行.2:如果遇到需要root权限的命令比如sudo mtr 127.0.0.1这种如果不改变sudoers文件的内容而是通过输入密码的方法能否实现.3:远程登录到服务器上如果还想通过该服务器ssh到其他服务器的话该如何实现

参考技术A   让用户输入要执行的命令,接收端会认为它是密码,应该会提示密码错误之类的吧?获取这个信息,提醒用户输入密码。追问

可是它直接提示三次access denied后就直接结束了阿,之后就要重开进程了,就像没有执行过ssh命令一样

参考技术B mina。apache。org/sshd-project/追问

感谢您的回答,看了您的回答之后我查了mina的相关知识,不过大多数都是那个获取时间的程序或者struct+hibernate+spring的相关实例,不知道有没有ssh相关的实例。再次感谢

追答

不好意思,上面说错了,用jsch
www。sourceforge。net/projects/jsch/?source=directory
示例地址:www。jcraft。com/jsch/examples/Shell.java

本回答被提问者采纳

如何允许root用户远程登录?

参考技术A   我们不建议你允许root用户通过telnet方式远程登录,而且系统缺省也是不允许这样做的。    如果希望以root的身份远程管理服务器,可以在服务器上安装SSHD,然后通过Secure Shell连接到服务器。    目前较新的Linux发行版都自带名为OpenSSH的SSH服务器,通过/etc/rc.d/init.d/sshd start即可启动SSH服务器。客户端通过SSH客户端即可连接到服务器。    目前常用的WIN32客户端是putty,你可以从putty的主页下载到这个免费软件。本回答被提问者采纳

以上是关于如何使用java通过ssh的方式登录远程服务器执行命令并返回结果的主要内容,如果未能解决你的问题,请参考以下文章

如何允许root用户远程登录?

如何允许root用户远程登录?

linux下如何使用ssh远程登录主机 执行shell脚本?

如何使用ssh登陆windows服务器

如何从Windows环境远程登录腾讯云linux服务器

解决SSH远程执行命令找不到环境变量的问题