4年後、この回答は更新に値します。もともと私はauthorized_keys
自分自身を使用しており、一部の特定のケースではおそらくそれを使用することになりますが、中央sshd_config
サーバーの構成ファイルを使用することもできます。
sshd_config
proxy-only
や、Match
個々のユーザーなどのグループを(特定のユースケースで)指定できます。でsshd_config
。これは、グローバル設定の後に行われ、グローバル設定で指定された設定の一部を取り消し、繰り返し、または調整します。
注:で使用されてsshd_config(5)
いる構文/ディレクティブの一部は、のman
ページに記載されていますssh_config(5)
。特に、の「パターン」セクションを必ずお読みくださいssh_config(5)
。
グループの場合、これはMatch
ブロックが次のように始まることを意味します。
Match group proxy-only
することができますMatch
以下の基準:User
、Group
、Host
、LocalAddress
、LocalPort
とAddress
。複数の条件に一致させるには、条件とパターンのペアをカンマで区切ります(group proxy-only
上記)。
簡潔にするために従来は適宜インデントされているこのようなブロック内で(そうする必要はありません)、ユーザーグループに適用する設定を宣言できますauthorized_keys
。そのグループのメンバーのすべてのファイルを編集する必要はありません。
no-pty
以下からの設定はauthorized_keys
でミラーリングされるだろうPermitTTY no
設定とcommand="/sbin/nologin"
なりますForceCommand /sbin/nologin
。
さらに、管理者のパラノイアを満たすためにchroot
、ユーザーをホームフォルダーに移動するなど、さらに多くの設定を設定することもできます。
Match group proxy-only
PermitTTY no
ForceCommand /sbin/nologin
ChrootDirectory %h
# Optionally enable these by un-commenting the needed line
# AllowTcpForwarding no
# GatewayPorts yes
# KbdInteractiveAuthentication no
# PasswordAuthentication no
# PubkeyAuthentication yes
# PermitRootLogin no
(コメント化された行が必要か、必要に応じてコメントを外すかを自分で確認してください)
%h
(ユーザのホームディレクトリで置換されるトークンである%u
ユーザー名ともたらすであろう%%
パーセント記号を)。私が見つけたChrootDirectory
私封じ込めるために特に有用でsftp-only
ユーザーを:
Match group sftp-only
X11Forwarding no
AllowTcpForwarding no
ChrootDirectory %h
ForceCommand internal-sftp
PasswordAuthentication no
ブロックでは特定のディレクティブのみを使用できることに注意してくださいMatch
。詳細については、man
ページsshd_config(5)
を参照してください(を検索Match
)。
authorized_keys
注意:この発言の下の部分は私の元の答えでした。その間-しかし、それはあなたの正確なsshd
バージョンの機能にも依存します-私はほとんどの場合上記の方法に行きます。
はい、できます。公開鍵を割り当てるのと同じくらいきめ細かくできます。ajdeconが推奨するnologinに加えて、のキーエントリの前に次のように設定することをお勧めしますauthorized_keys
。
no-pty ssh-rsa ...
no ptyは、サーバー側に、そのキーに疑似端末を割り当てないように指示します。
これを前に付けることにより、特定のキーに対してnologinのようなものを強制的に実行することもできます。
command="/sbin/nologin",no-pty ssh-rsa ...
no-pty
キーのユーザーがコマンドを実行することを妨げるものではないことに注意してください。superuser.com/q/1230979/195460を参照してください。