
Я пытаюсь дать кому-то доступ по 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
и выполнил следующие команды для смены пользователя jail:
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
У меня была эта проблема, и исправление было в том, чтобы поместить "UsePAM yes" над строфой "Subsystem sftp internal-sftp". Перезапустите ssh, и все заработало.
решение2
Я не вижу ничего явно неправильного в sshd_config
строках, которые вы разместили. Кажется, здесь есть три возможности:
- На самом деле все в порядке, но
sshd
нужно начать. sshd
может работать, но не прослушивает нужный IP-адрес или порт.- Что-то мешает
sshd
запуску.
Для всего нижеперечисленного вам необходимо находиться root
на хосте SSH-сервера.
Для (1) выполните что-то вроде "ps -fe | grep sshd", чтобы увидеть, sshd
запущено или нет. Если нет, попробуйте запустить сервер ssh. В Ubuntu выполните это:
/etc/init.d/ssh restart
Если sshd
работает, перейдите к (2). Проверьте 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
останется подключенным к вашему терминалу и выведет кучу отладочной информации. Если он не может продолжать работать по какой-то причине, он должен сообщить вам, почему.