重複の可能性:
oracleなどの一般ユーザーの直接ログインを無効にしますが、Linuxではscpとsftpを許可しますか?
UNIX アカウントが SSH 経由で接続されないようにしたいのですが、SCP/SFTP では引き続き使用できる必要があります。
それは可能ですか?
その理由は、Unixサーバーがアプリケーションに共通アカウントを使用し、人々が個人アカウントの代わりにその共通アカウントを使用してサーバーにログインするためです。監査の理由から、個人アカウントを使用してSSH経由でボックスに接続したいと思います。
答え1
それは非常に可能であり、これを行う方法はさまざまです。パッチワークソリューションもあり、エレガントなソリューションもあります。それはすべてあなたがしたいことの詳細とどれだけの時間を投資したいかによって異なります。
scp/sftp に制限するリモート専用ユーザーがいる場合は、次の点を確認することをお勧めします。スポリそして操作方法の指示セット(Debian 仮定).
また試すことができますRSSH、これは同じことを行う別のシェルの代替品です。
また、これらの制限付きユーザーのグループを作成し(もちろん)、そのグループにユーザーを追加する必要があります。次に、ファイルに次の内容を追加しますsshd_config
(通常はまたは/etc/ssh
にあります/etc
)。
Match Group sftp-only
ForceCommand internal-sftp
#ChrootDirectory /somewhere/%u # Optional chroot jail
#AllowTcpForwarding no # Disable TCP forwarding
#X11Forwarding no # Disable X11 forwarding
#Umask 700 # Set the umask
これにより、そのユーザーへのTCP転送などの操作が無効/強制されます。当然#
必要なものを削除する必要があります。sshd_config(5)
詳しくはマンページをご覧ください。
最も簡単な方法は、ユーザーのシェルを(それぞれDebianで)false
に変更することです。少し複雑な接続部分は、ユーザーまたはグループをチェックインしてから、「ログインが許可されていません」というメッセージでログアウトすることです。賭けをヘッジしたい場合(はい)これを行うことができますnologin
/bin/nologin
/usr/sbin/nologin
/etc/profile
しかも。覚えておいてください。それだけでは十分ではありません。
答え2
はい、可能です。しかし、簡単ではありません。ユーザーのデフォルトシェルとして使用される場合は、sftp、scp、rsync、cvs、およびrdistのみを許可するrsshというプログラムがあります。もちろん、設定ファイルを編集してさらに制限することもできます。
答え3
no-pty
このユーザーを試しましたか$HOME/.ssh/authorized_keys
?
man sshd(8), AUTHORIZED_KEYS FILE FORMAT:
no-pty Prevents tty allocation (a request to allocate a pty will fail).