私のサーバーに特別なユーザーがいます。これをと呼びますfoo
。私はポートフォワーディングにのみ使用しています。
.ssh/authorized_keys2
ログインをブロックして特定のポートのみを開くユーザー設定:
no-pty,no-X11-forwarding,permitopen="localhost:4000",\
command="/bin/echo do-not-send-commands" ssh-rsa <long public key> bar@foobar
また、対応するシェルは infoo
に設定されます。/bin/false
/etc/passwd
コンピュータにログインできません(これは私が望むものです)。
$ ssh foo@remote
PTY allocation request failed on channel 0
Connection to remote closed.
しかし、ポートを開くことはできます。興味深いことに、ポート4000を開くことができますが、許可されていない他のポートも開くことができます。
$ ssh -N -R 4001:localhost:22 foo@remote
> # connection established
remote
ユーザーはbar
次のように接続できます。
$ ssh -p4001 bar@localhost
bar@localhost's password:
Last login: Fri Sep 26 09:23:45 2014 from localhost.localdomain
...
ユーザーは
foo
ポート4001を開くことができますが、なぜポートをに制限するのですかpermitopen="localhost:4000"
?
答え1
ああ、マニュアルを読んでみると、その理由がわかります。
permitopen="host:port"
Limit local ``ssh -L'' port forwarding....
U&L Q&Aでも以下のタイトルが挙げられています。SSHを制限する方法離れてフォワードポート?。