위치:http://www.cleondris.ch/en/opensource-ssh2.php
설명:
Java용 Ganymed SSH-2는 순수 Java에서 SSH-2 프로토콜을 구현하는 라이브러리입니다(J2SE 1.4.2 및 5.0에서 테스트됨). 이를 통해 Java 프로그램 내에서 SSH 서버에 연결할 수 있습니다. SSH 세션(원격 명령 실행 및 셸 액세스), 로컬 및 원격 포트 전달, 로컬 스트림 전달, X11 전달, SCP 및 SFTP를 지원합니다. 모든 암호화 기능이 포함되어 있으므로 JCE 공급자에 대한 종속성이 없습니다.
약어:
复代码代码如下:
@시험
공공 무효 testSsh() {
문자열 호스트 이름 = "192.168.0.1";
문자열 사용자 이름 = "루트";
문자열 비밀번호 = "비밀번호";
노력하다 {
/* 연결 인스턴스 생성 */
연결 연결 = 새 연결(호스트 이름);
/* 이제 연결하세요 */
conn.connect();
System.out.println("연결 확인");
/*
* 인증합니다. 다음과 같은 IOException이 발생하는 경우
* "현재 단계에서는 서버에서 인증 방법 비밀번호를 지원하지 않습니다."
*그럼 FAQ를 확인해 주세요.
*/
boolean isAuthenticated = conn.authenticateWithPassword(사용자 이름, 비밀번호);
if (isAuthenticated == false)
throw new IOException("인증에 실패했습니다.");
System.out.println("인증 성공");
/* 세션 생성 */
세션 sess = conn.openSession();
sess.execCommand("uname -a");
System.out.println("다음은 원격 호스트에 대한 정보입니다:");
/*
* 이 기본 예제는 stderr을 처리하지 않습니다.
* 위험합니다(FAQ를 읽어보세요).
*/
InputStream stdout = new StreamGobbler(sess.getStdout());
BufferedReader br = new BufferedReader(new InputStreamReader(stdout));
동안 (참) {
문자열 라인 = br.readLine();
if (라인 == null)
부서지다;
System.out.println(line);
}
/* 가능한 경우 종료 상태 표시(그렇지 않으면 "null") */
System.out.println("ExitCode: " + sess.getExitStatus());
/* 이 세션을 닫습니다 */
sess.close();
/* 연결 끊기 */
conn.close();
} 잡기(IOException e) {
e.printStackTrace(System.err);
시스템.exit(2);
}
}
이동경로:
复代码代码如下:
연결 알았어
인증 OK
다음은 원격 호스트에 대한 일부 정보입니다.
Linux localhost.localdomain 2.6.22 #1 SMP Wed Aug 13 11:24:59 CST 2008 i686 i686 i386 GNU/Linux
종료코드: 0