当前位置:编程学习 > JAVA >>

不显示删除回复显示所有回复显示星级回复显示得分回复 java使用ganymed-ssh2远程连接Linux报IO异常,请帮忙看看原因

package health_checker;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;

import ch.ethz.ssh2.Connection;
import ch.ethz.ssh2.Session;
import ch.ethz.ssh2.StreamGobbler;

public class JaveSSH

{

  public static void main(String[] args)

  {

  String hostname = "50.130.2.3"; //要登陆目标主机

  String username = "root"; //登陆用的用户名

  String password = "root"; //登陆用到的密码

  try

  {

  /* Create a connection instance */

  Connection conn = new Connection(hostname);

  /* Now connect */

  conn.connect();

  /* Authenticate */
    
  boolean isAuthenticated = conn.authenticateWithPassword(username,
  password);

  if (isAuthenticated == false) {

  throw new IOException("Authentication failed.");
  }

  /* Create a session */

  Session sess = conn.openSession();

  //sess.execCommand("uname -a && date && uptime && who");

  sess.execCommand("ps aux ");

  System.out.println("Here is some information about the remote host:");

  InputStream stdout = new StreamGobbler(sess.getStdout());

  BufferedReader br = new BufferedReader(new InputStreamReader(stdout));

  while (true)

  {

  String line = br.readLine();

  if (line == null) {

  break;
  }

  System.out.println(line);

  }

  /* Show exit status, if available (otherwise "null") */

  System.out.println("ExitCode: " + sess.getExitStatus());

  /* Close this session */

  sess.close();

  /* Close the connection */

  conn.close();

  }

  catch (IOException e)

  {

  e.printStackTrace(System.err);

  }

  }

}

==================================
系统报错
java.io.IOException: Password authentication failed.

at ch.ethz.ssh2.auth.AuthenticationManager.authenticatePassword(AuthenticationManager.java:300)

at ch.ethz.ssh2.Connection.authenticateWithPassword(Connection.java:309)

at health_checker.JaveSSH.main(JaveSSH.java:43)

Caused by: java.io.IOException: Authentication method password not supported by the server at this stage.

at ch.ethz.ssh2.auth.AuthenticationManager.authenticatePassword(AuthenticationManager.java:270)

... 2 more

 
--------------------编程问答-------------------- 参考:http://www.ganymed.ethz.ch/ssh2/FAQ.html
Many default SSH server installations are configured to refuse the authentication type "password". Often, they only accept "publickey" and "keyboard-interactive". You have different options:

    Enable password authentication. E.g., in case of OpenSSH on Fedora, edit /etc/sshd/sshd_config and change the value of "PasswordAuthentication" to "yes", then send a HUP signal to the daemon so that it re-reads its configuration.
    Switch to public-key authentication. Probably the best choice.
    Try to use keyboard-interactive authentication. If you have a GUI that interacts with a user, then this is doable (check out the SwingShell.java example).

In general it is a good idea to call either Connection.getRemainingAuthMethods() or Connection.isAuthMethodAvailable() before using a certain authentication method.  --------------------编程问答--------------------
引用楼主 teery0441 的回复:
package health_checker;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;

import ch.ethz.ssh2.Connection;
import ch.eth……

ava.io.IOException:密码验证失败。
原因是:java.io.IOException:密码验证方法不被服务器支持在这个阶段。

看看你服务器支持什么模式的密码验证。 SSL????没用过linux --------------------编程问答--------------------  路    过  --------------------编程问答-------------------- 如何解决呢?各位大侠 --------------------编程问答-------------------- 如何切换到这种模式呢
Switch to public-key authentication. Probably the best choice.
--------------------编程问答-------------------- 明显是密码错误了么
你用ssh连接工具用root用户root密码能登陆进去么? --------------------编程问答-------------------- 看看这篇文章http://zoouyong20.iteye.com/blog/1122323 --------------------编程问答-------------------- 解决方法: 
vi /etc/sshd/sshd_config
PasswordAuthentication  yes
重启服务:
linux:
/etc/init.d/sshd restart 
freebsd:
/etc/rc.d/sshd restart
补充:Java ,  Web 开发
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,