~/.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