(Raspberry pi ロゴの SVGをwikiから転用?しました)
Rasberry Pi 2を2台買って、sshの踏み台を作りました。
本投稿は3部構成に。
1. Raspbian の導入(共通)
2. RasPi(家) の設定
3. RasPi(寮) の設定
構築作業を帰省に合わると財布にやさしいですね。
構築の最終的なそれはこんな感じ。
やりたいこと: [青の端末] から、事情があって外からアクセスできない [黄緑の計算ノード] にsshで入ってあそぶ
この構成だと[青の端末]→[黄緑の計算ノード]まで3ステップで繋がります。
(※0. [黄緑のRasPi] → [赤のRasPi] へ事前にトンネルを掘っておきます)
1. ssh [青の端末] → [赤のRasPi]
2. ssh [赤のRasPi] → [黄緑のRasPi]
3. ssh [黄緑のRasPi] → [黄緑の計算ノード]
※
こちらの[
インターネット上の中継サーバを使う方法]の項を参照されたい。本投稿だと[インターネット上の中継サーバ]を[赤のRasPi]が担当しています。
ログインまで長いのはいずれなんとかしましょうね。
1. Raspbian の導入(共通)
1.1. Raspbian を導入
やりたいこと:
Raspberry Pi 2 本体のOSの導入
手段:
Windows: Win32DiskImagerで
RaspbianのイメージをMicroSDに焼きます。
Win以外: ddコマンドしたらできました。
どっちでもOK。どちらも2,3度ほどやったところだとddが早かったですね。
1.2. 共通な設定
1.2.1. 使い出す前の設定
やりたいこと:
Raspberry Pi 2 のセッティング
MicroSDにイメージを焼いたら、
RasPiにMicroSD、US配列のキーボード、LANケーブル、HDMIケーブルを挿します。
さいごに、電源(バッテリでもOK)を突っ込みます。
僕はちょうどHappy Hacking Keyboardを持ってました。そうみんな持ってるから持ってた。
(bsdtarに失敗して運良く撮れたスプラッシュ・スクリーン)
[メモを見つけると、最初のログインのときの設定がここに入るはず]
reboot後、ログインしたら、
すぐに次のコマンドを入れる。
sudo apt-get install emacs
実際emacsは大事だ。古事記にもそう書いてある。
次はコレ、
こちらの設定
sudo emacs /boot/cmdline.txt
行末の rootwait の前に次を書き加えて、エラーがいなくなるそうな。
cgroup_enable=memory
1.2.2. セキュリティをそれとなく気にしているふうの設定
やりたいこと:
sshしか出来ない呪われたユーザを作りましょう。
どうやってやるか:
bash を rbash に変更して、(使うコマンドのシンボリックリンクだけを置いた)ディレクトリに PATH を通すとか。(簡易)
sudo adduser user4ssh
(→対話形式で新しいユーザを作る)
su user4ssh
(→新しいユーザでログインして、コマンドを制限したbashの設定を進める)
chsh
→ [user4sshのpassword]
→ /bin/rbash
(→コマンドを制限する rbash に、shellをchangeする)
[Ctrl]+[d]
(→User4sshに用がなくなりました)
sudo mkdir /home/hoge
(→使用可能なコマンドを格納するためのディレクトリを作る)
sudo ln -s /usr/bin/ssh /home/hoge/
(→使用可能なコマンドを ssh だけにする、ためにPATHのとこに配置する)
sudo echo 'export PATH=/home/hoge' >> /home/user4ssh/.bashrc
(→セキュリティ的にはよろしくない方法でPATHを上書きする。簡易って書いたからこうなの)
悪い人に再編集されないように権限をいじっておく。
sudo chmod 755 /home/user4ssh/.bashrc
sudo chown root /home/user4ssh/.bashrc
sudo chgrp root /home/user4ssh/.bashrc
sshコマンドしか使えない呪われたユーザ、爆誕。
1.2.3. sshの設定
やりたいこと:
外からのアクセスではパスワードログインをナシに。暗号鍵使おう。
コマンド制限されてないユーザへは、ローカルホストからsshアクセスさせない。他の端末を一回経由してからにして。
以下を設定する
sudo emacs /etc/ssh/sshd_config
(→ポートの変更+下記の追加+お外からのみパスワードログインの拒否)
(設定例?: 変なこと書いてると思ってますので信用しないで)
AllowUsers user4ssh pi@192.168.1.*
DenyUsers pi@localhost
<!-- 追記: コマンドの履歴が残らない設定にしない限りは自機IPでのログインもダメにしないと... -->
Match address 192.168.1.0/24
PasswordAuthentication yes
(→この2行はファイル末尾につけた)
そしたら
sudo /etc/init.d/ssh restart
2. RasPi(家) の設定
(→いつか追加)
3. RasPi(寮) の設定
(→いつか追加)