web-dev-qa-db-ja.com

Chrootsshユーザーをホームフォルダーに移動すると接続が拒否されます

自分が持っている(Ubuntu 14.04)サーバーへのsshアクセスを誰かに許可しようとしていますが、自分のホームフォルダーに制限したいと思います。だから私は従おうとしています このチュートリアル

最初に、jailuserを使用してログインできるようにするユーザー(Sudo adduser jailuser)を作成しました。次に、ユーザーを投獄しようとすることに進み、/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
kramer65

この問題が発生しました。修正は、「Subsystemsftpinternal-sftp」スタンザの上に「UsePAMyes」を配置することでした。 sshを再起動すると、問題なく動作しました。

2
user104318

あなたが投稿したsshd_config行に明らかに問題はありません。ここには3つの可能性があるようです。

  1. 本当に悪いことは何もありませんが、sshdを開始する必要があります。
  2. sshdは実行できますが、正しいIPアドレスまたはポートでリッスンしていません。
  3. 何かがsshdの開始を妨げています。

以下のすべてについて、sshサーバーホスト上でrootである必要があります。

(1)の場合、「ps -fe | grep sshd」のようなものを実行して、sshdが実行されているかどうかを確認します。そうでない場合は、sshサーバーを起動してみてください。 Ubuntuでは、これを実行します:

/etc/init.d/ssh restart

sshdが実行されている場合は、(2)に進みます。 ListenAddressまたはPortディレクティブの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は端末への接続を維持し、一連のデバッグ情報を出力します。何らかの理由で実行を継続できない場合は、その理由を説明する必要があります。

1
Kenster