~/.ssh/authorized_keys の設定
SSH を使って自動的にトンネルを張ったり,自動的にコマンドを実行させる,ということが非常に多い.その時,自動化する都合で,パスフレーズ無し公開鍵認証を用いることになるのだが,1 つのコンピュータが奪われた時 (物理的にアクセス可能な場合はディスクを直接読み取ることにより漏れる可能性がある),設定に問題があると芋づる式に全てのコンピュータの権限が奪われてしまう.そこで正しく設定をする方法についてのメモ.
- 特定のポートにフォワードする設定
-
permitopen="[フォワードするホスト名]:[フォワードするポート番号]",command="/bin/echo",no-X11-forwarding,no-agent-forwarding,no-pty - 特定のコマンドのみを実行する設定
-
command="[実行するコマンド]",no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty - 特定のファイルを書き換える設定
-
command="/usr/local/bin/scp -t [ターゲットとなるファイルパス]",no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty
これらのオプションを (例えば以下のように) authorized_keys の各行の先頭部分で設定を行う.また接続元が決まっている場合は,from オプションを用いることにより安全性は向上させることができる.
from="*.kyoto-u.ac.jp",permitopen="latias.local:3689",command="/bin/echo",no-X11-forwarding,no-agent-forwarding,no-pty ssh-rsa AAAAB3Nz...(省略)...R7kw== imos.latias.itunes.port@snorlax
