Posted at

今まで知らずに損してたauthorized_keysの書き方

More than 3 years have passed since last update.

SSHの公開鍵認証を行うために、以下の様にauthorized_keysに公開鍵を書きますよね。

~/.ssh/authorized_keys

ssh-rsa ....

ほとんどの場合はこれで事足りるのですが、意外と知られていない(?)便利な書き方が有ることを知ったので共有します。


特定のIPからの接続のみ許可する

from="1.2.3.4" ssh-rsa  ....

と書くと、その鍵では1.2.3.4というIPアドレスを持つクライアントからしか接続できないように制限をかけることができます。

これを知るまではiptablesだけで接続元を弾いていたのですが、これを使えば鍵ごとに接続元を指定できるので、よりきめの細かなアクセス制限がかけられて幸せです。

以下の様に書けば、サブネット単位で許可したり複数のIPを指定することも可能です。

from="1.2.3.0/24,44.55.66.77" ssh-rsa ...

以下の様に他のオプションと組み合わせることも可能です。

from="1.2.3.4",no-agent-forwarding,no-port-forwarding,no-X11-forwarding ssh-rsa ...

この例では、IP制限をかけつつエージェント転送とポートフォワーディングを禁止してます。


特定のコマンドの実行のみを許可する

実はこれは前から知ってたのですが、ついでにメモっておきます。

command="/usr/local/bin/my-prog" ssh-rsa ..


参考