OpenSSH公開鍵の制限設定
OpenSSHサーバに公開鍵認証でログインしたユーザができることを制限したい場合、authorized_keysの公開鍵にオプションを書き連ねる。
no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty,command="..." ssh-rsa ...
これらのうちno-*は、restrictオプションひとつで置き換えることができる。
restrict,command="..." ssh-rsa ...
より正確には、restrictは以下の設定と等価になる。
no-port-forwardingno-agent-forwardingno-X11-forwardingno-ptyno-user-rc
さらに将来同様のオプションが新設された場合もrestrictでカバーされることが期待できる。
必要なオプションがあれば一部を明示的に有効化することもできるので、restrictをベースに設定するのがいい。
詳しくはsshd(8)や、ソースコードのauth-options.cを参照。
自分の中では新発見だったのだけど、restrictオプション自体はにリリースされたOpenSSH 7.2(リリースノート)で新設されたもので、まったくもって目新しいものではない。
Gitのpull/pushにしか使わない公開鍵を持っていて、できることを制限しようと思い立った。
git-shellを使えばいいことはすぐにわかったのだけど、他にどんなオプションがあったかと調べていたらたまたま見つけた。