さくらのレンタルサーバでポートフォワーディングしてssh接続

Share Button

研究室の40万ぐらいのパソコンが1台余ったのでCentOS7を入れた。入れたんだけどそれ自体が多重のハブ内部に置いてあるので外から直接はsshでつなぐことができない。しかし出先からsshで接続したいので、AWSでサーバ建ててポートフォワーディングで転送します。いわゆるトンネル掘るってやつですね。

ポートフォワーディングすることでグローバルIPの取得できない内部ネットワーク内のパソコンに直接sshでつなぐわけだけど、それ自体の解説は下の記事がわかりやすい。

SSHポートフォワード(トンネリング)を使って、遠隔地からLAN内のコンピュータにログインする
http://www.clear-code.com/blog/2014/9/12.html

まず直接sshできるか確認

まずCentOS側でsshの設定ができていないとそもそも同一ネットワーク上でもsshでの接続はできない。試しにやってみても
[jun@mackbook] $ ssh jack@192.168.**.**
ssh: connect to host 192.168.**.** port 22: Connection refused
って感じでポートが開いてないかファイアウォールで遮断されてるかでとにかく繋がらない。

yumでopens-serverは入っていることを確認した上で…
[jack@localhost] $ vi /etc/ssh/sshd_config
でsshの設定を開く。最終的にはどうせポートフォワーディングかけないとアクセスできない場所に置いてあるのでポートはそのまま。
Port 22
PasswordAuthentication yes
できたらsshdの再起動。
[jack@localhost] $ sudo systemctl start sshd.service
最終的には公開鍵認証に変える。
これでさっきのsshが通ればとりあえずの設定はOK。

さくらのレンタルサーバでやる場合

さくらのVPS契約しないとできないかなと思ってたんだけど別に普通にできた。
まずは接続先のPCからさくらのレンタルサーバにsshでつなぐ。
[jack@localhost] $ ssh MYACCOUNT@MYDOMAIN.sakura.ne.jp -R 10022:192.168.**.**:22
MYACCOUNT's Password: ***
-RオプションではRemotePort:LocalIP:LocalPortの形で、さくらのレンタルサーバ側の指定ポート番号(RemotePort)への通信を自分のサーバのIP(LocalIP)の指定ポート(LocalPort)に転送する設定。僕の場合はレンタルサーバ側の10022ポートを転送する形で「10022:192.168.**.**:22」で。パスワードはさくらのレンタルサーバのコンパネに入る時のもので。

入ったらhostnameを叩くと
% hostname
www****.sakura.ne.jp
でさくらのホストネームが出てくる。そのままlocalhostでポート10022につなげば…
% ssh jack@localhost -p 10022
jack's Password: ***
ここで聞かれるのはCentOS側のアカウントjackとパスワードの組み合わせ。
入ったら同じくhostnameすれば
[jack@localhost] $ hostname
localhost.localdomain
でCentOS側のホストネームが表示されるようになる。これで接続は完了。

あとは念のためCentOS側をautosshでつなぎなおせば、ネットが切断されてもすぐ再接続してくれる。ただし


For CentOS/RHEL 7, autossh is no longer available in Repoforge repository. You will need to build it from the source (explained below).



とのこと(http://ask.xmodulo.com/install-autossh-linux.html)なので手作業でやっていく。

[jack@localhost] $ sudo yum install wget gcc make
[jack@localhost] $ wget http://www.harding.motd.ca/autossh/autossh-1.4e.tgz
[jack@localhost] $ tar -xf autossh-1.4e.tgz
[jack@localhost] $ cd autossh-1.4e
[jack@localhost] $ ./configure
[jack@localhost] $ make
[jack@localhost] $ sudo make install

できた。
つなぐ。

[jack@localhost] $ autossh MYACCOUNT@MYDOMAIN.sakura.ne.jp -M 50000 -C -N -f -R 10022:192.168.**.**:22

AWSでポートフォワーディング


まずAWSのインスタンス(t2.micro)を作ってキーペアを落とす。
mv mykey.pem ~/.ssh/
chmod 600 ~/.ssh/mykey.pem
ssh -i ~/.ssh/mykey.pem ec2-user@ACCOUNT.compute.amazonaws.com
したらポートフォワーディングを有効にするために、
vi /etc/ssh/sshd_config
でGatewayPortsをyesに変更。
セキュリティグループから10022ポートを開ける。

あとは同じことですね。

やったー、安定した環境が手に入ってきたー。

style="display:block; text-align:center;"
data-ad-layout="in-article"
data-ad-format="fluid"
data-ad-client="ca-pub-3546003055292762"
data-ad-slot="5749192034">

Share Button

コメントを残す

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

This site uses Akismet to reduce spam. Learn how your comment data is processed.