2014年11月24日月曜日

groovyとGanymed SSH-2で秘密鍵を使用してログインする

groovyとGanymed SSH-2で秘密鍵を使用してログインするには、以下のコードを実行します。

サンプルコード
@Grab(group='ch.ethz.ganymed', module='ganymed-ssh2', version='262')
import ch.ethz.ssh2.*

host = "your-linux-box"
username = "user"
// puttygenを使用している場合は、Conversions -> Export OpenSSH keyを選択する
privateKey = "openssh_private_key"  

// サーバに接続
conn = new Connection(host)
conn.connect()
if( !conn.authenticateWithPublicKey(username, new File(privateKey), null) ){
  throw new Exception("authentication failed.")
}

// コマンド実行
sess = conn.openSession()
sess.execCommand("""ls -alF""")
// 標準出力
stdout = new BufferedReader(new InputStreamReader(
  new StreamGobbler(sess.getStdout()), "UTF-8"))
stdout.withCloseable{
  it.eachLine { line ->
    println line
  }
}
// 標準エラー出力
stderr = new BufferedReader(new InputStreamReader(
  new StreamGobbler(sess.getStderr()), "UTF-8"))
stderr.withCloseable{
  it.eachLine { line ->
    println line
  }
}
sess.close()
conn.close()

○関連項目

0 件のコメント:

コメントを投稿