Eclipse RSE+PuTTYでポートフォワーディング

やりたいこと

Eclipse RSEでポートフォワーディングをやりたい。

今回は、大学のサーバーをEclipse RSEで管理したい。
大学のサーバーでなくても、踏み台が必要なサーバーであればこの方法が使えると思う。

Eclipse RSEの問題点

統合開発環境Eclipseでは、サーバーとのデータ転送を行えるツールとしてRSE(Remote System Explorer)がある。しかし、Eclipse RSEは多段階接続ができない。

大学のサーバーに接続するには、踏み台サーバーを経由してから接続する必要がある。つまり、Eclipse RSEだけでは大学のサーバーに接続できないのだ。

解決策

SSHクライアントソフトのPuTTYを使って多段階接続を行い、ローカルホスト経由でRSEとPuTTYを接続することで、RSEと大学のサーバー間でデータのやり取りが可能になった。

やり方

Eclipse RSEは既に入っているものとする。まだなら、Eclipseからサーバー環境に接続してファイルを直接編集する方法!なんかを見ればいいかと。

1. PuTTYのインストール

PuTTYはここからインストールできる。自分のOSに合わせてインストール。

PuTTYのインストーラー
PuTTYのインストーラー

2. PuTTYで秘密鍵と公開鍵を作成する

一緒にインストールされたPuTTYgenで鍵を作成できる。秘密鍵は自分のPCのフォルダに置く。ここではC:\Users\naraikiにbastion_key.ppkというファイル名で保存した。

参考:公開鍵認証によるSSH接続 – PuTTYの使い方

3. 作った公開鍵を踏み台サーバーに置く

公開鍵はメールなどで別のマシンに送る。PuTTYgenで作られた公開鍵は変に改行が入っているのでそれを削除しないとうまくいかないかも。

踏み台サーバーにログインし、.ssh内に公開鍵を置いて、authorized_keysに追加する。公開鍵のファイル名がpublic_keyだとしたら、次のコマンドでauthorized_keysに追加できる。
cat public_key >> authorized_keys

参考:サーバに新たなSSH公開鍵を追加する

4. Puttyで大学のサーバーに接続する

接続したいサーバーのアドレスをuniv_server、ユーザー名をuniv_username、踏み台サーバーのアドレスをbastion、ユーザー名をbas_usernameとする。(実際の踏み台サーバーのアドレスは163.221.10.10みたいなグローバルIPや、sh.naist.jpのようなドメインで表されているはず)

  1. SessionのHost Nameに踏み台サーバーのアドレスを入力。SSHの場合ポートのデフォルトは22のまま。Saved Seesionにセッション名を入力
step1: Sessionの設定

2. DataのAuto-login usernameに踏み台サーバーでのユーザー名を入力

step2: Dataの設定

3. AuthのPrivate key file for authentificationに秘密鍵のアドレスを入力

step3: Authの設定

4. TunnelsのAdd new forward portの各項目に次を入力してaddをクリックする。
Source port : 10000(0-65535の好きなポート番号でいい。他と競合しない限りは。以下の説明ではポート番号は10000であるとする)
Destination : univ_server:22 (SSH接続なのでポートのデフォルトである22を指定する)

step4: Tunnelsの設定

5. もう一度Sessionに戻ってSaveをクリックし、入力内容を保存する。それからOpenをクリックする。

step5: 設定完了

うまく接続できるとPuTTYのシェルが開き、踏み台サーバーのパスワード入力が求められる。パスワードを入力すると、踏み台サーバーに入ることができる。
この瞬間に、ローカルホストの10000番ポートは踏み台サーバーへポートフォワーディングされることになる。

5. RSEから大学サーバーに接続する

最終ステップとして、RSEからローカルホストの10000番ポート経由で踏み台サーバーにアクセスし、大学サーバーにログインすることで大学サーバーに接続する。

  1. 新規接続のアイコンをクリックし、リモート・システム・タイプをSSHと選ぶ

2. ホスト名にLOCALHOSTと入力する。接続名はなんでもいい。残りの設定は変えなくていいので完了をクリックする。

3. 新しいリモートシステムができるので、その中の「Sftpファイル」を右クリックしてプロパティを開く。サブシステムのポート番号を4-4で決めたローカルホストのポート番号にする。ユーザーIDを大学サーバーでのユーザー名にする。設定したら適用して閉じる。

7. Sftpファイルを右クリックして「接続」を選ぶ。すると大学サーバーのパスワードが求められるので入力する。成功すると接続できる。

まとめ

以上のやり方で、Eclipse RSEからポートフォワーディングによって踏み台サーバー越しに接続を確立できる。
接続中はPuTTYをつなげたままにしないとローカルホストのポートが閉じてしまうので注意。

参考サイト

Follow me!

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です