1

Я пытаюсь дать кому-то ssh доступ к имеющемуся серверу (Ubuntu 14.04), но я хочу ограничить их собственной домашней папкой. Поэтому я пытаюсь следовать этому уроку.

Сначала я создал пользователя (sudo adduser jailuser), который позволил войти в систему с помощью 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 .

Так как я новичок в управлении серверами, я здесь потерян. Кто-нибудь знает, что я делаю не так? Все советы / хитрости приветствуются!

2 ответа2

2

У меня была эта проблема, и исправление заключалось в том, чтобы разместить "UsePAM yes" над разделом «Подсистема sftp internal-sftp». Перезапустите SSH, и все заработало.

1

Я не вижу ничего явно неправильного в строках sshd_config которые вы опубликовали. Кажется, здесь есть три возможности:

  1. Нет ничего плохого, но нужно запустить sshd .
  2. sshd может работать, но не прослушивает правильный IP-адрес или порт.
  3. Что-то мешает запуску sshd .

Для всего следующего вам нужно быть пользователем root на хосте ssh-сервера.

Для (1), запустите что-то вроде «ps -fe | grep sshd», чтобы увидеть, работает ли sshd или нет. Если нет, попробуйте запустить сервер ssh. В Ubuntu вы запустите это:

/etc/init.d/ssh restart

Если sshd запущен, перейдите к (2). Проверьте sshd_config для директив ListenAddress или Port . Они определяют, какой 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 останется подключенным к вашему терминалу и выведет кучу отладочной информации. Если он не может продолжать работать по какой-то причине, он должен сказать вам, почему.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .