Linux起動時にSSHトンネルを掘る設定方法

パブリックアクセスさせたくない特定のポートアクセスを行う場合に使うSSHトンネルを、Linuxのサーバー起動時に自動的に掘っておくための設定方法を紹介します。

SSHの秘密鍵、公開鍵の作成

ssh-keygenコマンドで秘密鍵(id_rsa)と公開鍵(id_rsa.pub)を作成します。

$ cd ~
$ ssh-keygen  
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/ユーザー名/.ssh/id_rsa): <--鍵の保存先 (エンター)
Enter passphrase (empty for no passphrase):  <-- パスフレーズを入力(今回はパスフレーズ無しでエンター)
Enter same passphrase again:  <-- もう一度、パスフレーズを入力(今回はパスフレーズ無しでエンター)
Your identification has been saved in id_rsa.
Your public key has been saved in id_rsa.pub.

作成されたid_rsa.pubの中のテキストを接続先の「ユーザフォルダ/.ssh/authorized_keys」内に追記します。

起動時のトンネル堀りを設定

システム起動時に実行されるスクリプト 「/etc/rc.local」にトンネル堀りの実行コマンドを追記します。

$ sudo vi /etc/rc.local

/etc/rc.local

............
............
touch /var/lock/subsys/local

#この下にトンネル堀りのコマンドを追記

/usr/bin/ssh -o ServerAliveInterval=60  -i /home/ec2-user/.ssh/id_rsa -f -N -L  5433:localhost:5432 ec2-user@接続先IPアドレス

動作確認

サーバーをシャットダウン

$ sudo shutdown -r now

トンネルの状態を確認

$ sudo netstat -lanput | grep 5432
tcp        0      0 127.0.0.1:5433          0.0.0.0:*               LISTEN      2914/ssh            
tcp6       0      0 ::1:5433                :::*                    LISTEN      2914/ssh    

以上で、Linux起動時にSSHトンネルを掘る設定方法の紹介が完了です。おつかれさまでした!!

Leave a Reply

Your email address will not be published. Required fields are marked *