有限な机上スペースを効率的に使うため,SSHをインストールしました.
偉そうなこと言ってますが家が狭いだけです.
OS(参考程度に) :
SSHサーバ:Debian lenny
SSHクライアント(LAN内):Ubuntu 9.10
SSHクライアント(LAN外):Solaris9と10
SSHをインストールする前に,ルータ(iptables)の設定をしました.
当面はLAN内でのみの運用としたいので
定数に
ssh_port='22'
INPUT RULESに
$IPTABLES -A INPUT -i $wan_port -p tcp --dport $ssh_port -j DROP
としました(Port22は変えたほうがいい).
{ もっとも,SSHサーバはNAT内であり,ルータのNAT設定をしていないのだから
この行を追加しようがしまいが外から繋がらないことに変わりはない.要は気持ちの問題である.}
LAN内の端末間のFORWARDは元々許可されています.
# LAN内の他端末からのアクセスを許可
$IPTABLES -A FORWARD -s $lan_range -d $lan_range -j ACCEPT
本題.SSHをインストールします.
sudo apt-get install ssh
/etc/ssh/sshd_configを書き換えます.
sshd の設定(sshd_config)
Ubuntuでsshdの設定をしてリモートから接続できるようにする
書き換えたら
sudo /etc/init.d/ssh restart
まずはsuの制限をかける程度にして,認証に成功したら公開鍵認証に切り替えることにしました
早速,LAN内のクライアントから
$ ssh -p 22 user@hostname
The authenticity of host '[hostname]:22 ([***]:22)' can't be established.
RSA key fingerprint is ***.
Are you sure you want to continue connecting (yes/no)? yes
fingerprint取られて通常通りのPassとUserで通ります.
特に何も弄ってないのですが,X使うもの(geditとか)も動きました.
一方,LAN外から叩いてみると
ssh -p 22 user@team2ch.org
ssh: connect to host team2ch.org port 22: Connection refused
入れません.NAT設定してない上にINPUTで蹴ってるわけだから入れたらいやですが.
さて,公開鍵認証にしよう.
Password認証やらPAMやらはnoにして,公開鍵認証の項目のみyesにします.
PubkeyAuthentication yes
その後,サーバの~/.ssh/authorized_keysにクライアントの公開鍵を追記してsshをrestartすればOKです.
UbuntuからDebianのiceweaselを起動しても,そこそこ動いてくれます.
結論:これは便利だ.今まで怠けて設定してなかったことが悔やまれる.当たり前だが,ルータの設定と許可IPアドレスの範囲さえ変えれば外からもいけるわけだし.