web-dev-qa-db-ja.com

ターミナルなしでポート転送を使用してsshアカウントを設定するにはどうすればよいですか?

友達にSSHで接続して、特定のポートの転送のみを許可できるように、友達に提供できる新しいユーザーアカウントを設定しようとしています。

友達にシェルを持たせたり、転送を許可されているポートに変更したりしたくありません。

セッションの例:joe(friend)は、PuTTY(私が事前に設定したものです。彼はコンピューターが苦手です)を使用してexample.com(インターネットに接続しているコンピューター)に接続し、ポート8080、1990、25565を彼に転送します(彼が望むポート、できれば同じ番号のままにする)sshコマンドの例で同様のことを行います(ただし、彼は私のコンピューターのポートを変更できます!)

ssh -N [email protected] -p443 -L8080:192.168.1.2:8080 -L1990:127.0.0.1:1990 -L25565:127.0.0.1:25565

次に、他の友人のスミス(同じポート、同じユーザーでも)と同じ話をしますが、彼はLinuxを使用しているため、PuTTYを使用できません。

これ以外のすべてのユーザーにデフォルトのSSH機能を残すことは可能ですか?

グーグルを検索していたときに this を見つけましたが、残念ながら、何が提案されているのかよくわかりませんでした。ポート転送の制限については説明されていないと思います。

4
admalledd

私が思い浮かぶ最も簡単な方法は、SFTPを無効にして、シェルを/ usr/sbin/nologinなどに変更することです(「このアカウントは現在利用できません。」と出力して終了するプログラム)。

彼らがあなたのマシンの彼らのユーザーの下にファイルを保存することについて心配がなければ、あなたは解決策から離れた/ etc/passwdです。それらがハードドライブをジャンクでいっぱいにすることを心配している場合は、クォータを設定することをお勧めしますか? ;)

使用可能なポートを制限することに関しては、sshd_configの「permitopen」がその目的をうまく果たすはずです。 -L転送のホストターゲットの特定のセットを除くすべてを禁止することしかできないため、希望どおりには機能しませんが、これらのユーザー専用に別のsshdを実行することは可能です。それらの制限。

4