Ubuntu Server セットアップ備忘録 (23) - システム起動時に SSH トンネルを掘らせる

まず root でリモートホストssh できるように準備。

user@ubuntu:~$ sudo su
root@ubuntu:/home/user# cd ~
root@ubuntu:~# ssh-keygen -t dsa
root@ubuntu:~# scp .ssh/id_dsa.pub user@host:~/tmp.pub
user@host's password:
root@ubuntu:~# ssh user@host
user@host's password:
user@host:~$ cat tmp.pub >> .ssh/authorized_keys
user@host:~$ rm tmp.pub
user@host:~$ exit
root@ubuntu:~#

で、システム起動時に実行されるスクリプト /etc/rc.local にトンネル掘りを追記。

exec /usr/bin/ssh -f -N -L 13306:localhost:3306 user@host

再起動して、うまくいったか確認。


root@ubuntu:~# shutdown -r now
...
user@ubuntu:~$ sudo netstat -lanput | grep 13306
tcp 0 0 127.0.0.1:13306 0.0.0.0:* LISTEN 5899/ssh
tcp 0 0 127.0.0.1:37644 127.0.0.1:13306 ESTABLISHED 5102/mysqld
tcp 0 0 127.0.0.1:13306 127.0.0.1:37644 ESTABLISHED 5899/ssh
tcp6 0 0 ::1:13306 :::* LISTEN 5899/ssh

おっけー。


参照情報:
http://fun.poosan.net/sawa/wiki/?Linux%2Fetc%2Frc.local
http://viva-ubuntu.net/?p=1259
Electronic Genome - ランレベルとサービス起動プロセスのまとめ
netstatでポートを空けているプログラムを知る - elf's blog


[追記] トラックバックで autossh というのを知った。こりゃいい。早速導入。