
私は誰かに(Ubuntu 14.04)サーバへのSSHアクセスを許可しようとしていますが、アクセスを自分のホームフォルダに制限したいです。そこで、私は次のことを試しています。このチュートリアル。
sudo adduser jailuser
まず、jailuser を使用してログインできるユーザー ( ) を作成しました。次に、ユーザーを jail にしようとして、以下を追加しました/etc/ssh/sshd_config
(ssh を再起動しました)。
Subsystem sftp internal-sftp
Match Group sftp
ChrootDirectory %h
ForceCommand internal-sftp
AllowTcpForwarding no
次に、グループ sftp を作成しました。
sudo groupadd sftp
次のコマンドを実行して jailuser を変更しました。
sudo usermod -G sftp jailuser
sudo usermod -s /bin/false jailuser
sudo chown root:root /home/jailuser
sudo chmod 0755 /home/jailuser
その結果、ログインできなくなりましたssh: connect to host xx.xxx.xx.223 port 22: Connection refused
。
私はサーバー管理の初心者なので、ここで困惑しています。私が何を間違っているのか知っている人はいませんか? すべてのヒントやコツを歓迎します!
答え1
私もこの問題に遭遇しましたが、修正方法は「Subsystem sftp internal-sftp」スタンザの上に「UsePAM yes」を置くことでした。ssh を再起動すると、すぐに機能しました。
答え2
あなたが投稿した行に明らかに問題があるようには思えませんsshd_config
。ここでは 3 つの可能性があるようです:
- 特に問題はないのですが、
sshd
始める必要があります。 sshd
実行はできますが、正しい IP アドレスまたはポートをリッスンしていません。- 何かが
sshd
起動を妨げています。
以下のすべての操作を行うには、root
ssh サーバー ホスト上にいる必要があります。
(1) については、「ps -fe | grep sshd」などを実行して、実行されているかどうかを確認しますsshd
。実行されていない場合は、ssh サーバーを起動してみてください。Ubuntu では、次のコマンドを実行します。
/etc/init.d/ssh restart
が起動している場合は( 2 sshd
)に進みます。sshd_config
リスンアドレスまたはポートディレクティブ。これらは、サーバーが接続をリッスンする IP アドレスとポートを制御します。ほとんどの場合、これらをコメントアウトしたままにするか (デフォルト値を使用するため)、それぞれ 0.0.0.0 と 22 に設定します。
起動しようsshd
としたが実行できない場合は、まず のログ ファイルで/var/log
からのメッセージを確認してsshd
ください。そこには、どのような問題が発生しているかが示されている可能性があります。それでも問題が解決しない場合は、sshd
デバッグしながら対話的に実行できます。
/usr/sbin/sshd -ddd # Listen on the default port 22
/usr/sbin/sshd -ddd -p 1022 # Listen on port 1022
sshd
端末に接続したまま、デバッグ情報を大量に出力します。何らかの理由で実行を継続できない場合は、その理由が通知されます。