ОБНОВЛЕНИЕ: удалось исправить, но не уверен, почему это произошло

ОБНОВЛЕНИЕ: удалось исправить, но не уверен, почему это произошло

Фон

У меня настроен сервер с доступом по SSH через ключи ras. Доступ по паролю не разрешен.

Работало нормально. Мой пользователь (назову его USER1) и root могли войти в систему, используя свои ключи.

ИЗМЕНЕНИЯ, КОТОРЫЕ ПОТЕНЦИАЛЬНО ВЫЗВАЛИ ПРОБЛЕМУ

Вчера я внес несколько изменений на сервер, следуя инструкциямв этой статье, чтобы предоставить новому пользователю (USER2) ограниченный доступ к одной папке (корневой веб-каталог). Я также следовал инструкциям вЭта статья.

Подводя итог этим изменениям, я создал нового пользователя (USER2) и сделал из bindfsвеб-корня ( /home/user1/sites/domain/public/) в /home/user2/domain/public/). Было сделано еще несколько вещей, согласно этим статьям, но, насколько я могу судить, ни одна из них не влияет на разрешения и SSH-доступ USER1. Поэтому я не буду пытаться повторить их все здесь.

Согласно одной из этих статей, я также добавил в sshd_configфайл следующее:

subsystem sftp internal-sftp
Match User USER2
ChrootDirectory %h
AllowTCPForwarding no
X11Forwarding no
ForceCommand internal-sftp

Насколько я могу судить, это единственное, что изменилось с тех пор, как мне в последний раз удалось войти в систему под именем USER1.

ПРОБЛЕМА

После внесения вышеуказанных изменений я не смог войти на следующий день (сегодня). Я получаю ошибку, Permission denied (publickey)..

Я выполнил все стандартные рекомендации по установке правильных разрешений и владельца для ~/home/USER1/.sshпапки и ~/home/USER1/.ssh/authorized_keysфайла. Хотя ни одно из них не было изменено моими действиями вчера, так что я просто повторно применил существующие разрешения.

Содержимое моего /etc/ssh/sshd_configфайла:

Port 22
Protocol 2
HostKey /etc/ssh/ssh_host_rsa_key
HostKey /etc/ssh/ssh_host_dsa_key
HostKey /etc/ssh/ssh_host_ecdsa_key
HostKey /etc/ssh/ssh_host_ed25519_key
UsePrivilegeSeparation yes
KeyRegenerationInterval 3600
ServerKeyBits 1024
SyslogFacility AUTH
LogLevel INFO
LoginGraceTime 120
PermitRootLogin yes
StrictModes yes
RSAAuthentication yes
PubkeyAuthentication yes

AuthorizedKeysFile  %h/.ssh/authorized_keys
IgnoreRhosts yes
RhostsRSAAuthentication no
HostbasedAuthentication no
PermitEmptyPasswords no
ChallengeResponseAuthentication no
PasswordAuthentication no
X11Forwarding yes
X11DisplayOffset 10
PrintMotd no
PrintLastLog yes
TCPKeepAlive yes
AcceptEnv LANG LC_*
UsePAM yes
Subsystem sftp /usr/lib/openssh/sftp-server

Match User USER2
PasswordAuthentication yes
ChrootDirectory %h
AllowTCPForwarding no
X11Forwarding no
ForceCommand internal-sftp

AuthorizedKeysFile %h/.ssh/authorized_keysбыл ранее закомментирован. Я раскомментировал его, пытаясь исправить эту проблему.

Я в растерянности относительно того, что мешает моему USER1 иметь доступ SSH на основе ключей. Если есть какая-либо дополнительная информация, которая может быть полезна, пожалуйста, дайте мне знать.

ОБНОВЛЕНИЕ: удалось исправить, но не уверен, почему это произошло

Дважды проверив, что все разрешения верны, и в файле нет ничего странного sshd-config, я настроил ssh на разрешение входа по паролю, а затем повторно скопировал свой файл id_rsa.pub (используя ssh-copy-id) на сервер.

Это восстановило мой доступ для USER1 с помощью ключа.

Я не совсем понимаю, почему возникла эта проблема, и планирую использовать инструкции из этих статей на дополнительных серверах (так как это оказалось очень полезным способом предоставить разработчику (например) строгий доступ (только) по SFTP к веб-сайту и разрешение на внесение изменений в файлы). Так что если у кого-то есть время указать, в чем была ошибка в инструкциях, пожалуйста, сделайте это.

Чтобы избавить вас от чтения этих статей, вот перечень шагов, которые я предпринял:

mkdir -p /home/user2/websites/application1
chown -Rf user2:user2 /home/user2/websites
chmod -Rf 770 /home/user2/websites

Добавить следующее в/etc/fstab

bindfs#/home/user1/websites/domain/public /home/user2/websites/application1 fuse force-user=user2,force-group=user2,create-for-user=user1,create-for-group=user1,create-with-perms=0770,chgrp-ignore,chown-ignore,chmod-ignore 0 0

chown user1:user1 /home/user1/websites/domain/public
chmod 770 /home/user1/websites/domain/public

Создал нового пользователя:

sudo useradd -d /home/user2/website/application1 user2
sudo passwd user2

Добавлено в sshd-config

subsystem sftp internal-sftp
Match User user2
ChrootDirectory %h
AllowTCPForwarding no
X11Forwarding no
ForceCommand internal-sftp

Затем,sudo service ssh restart

ВОПРОС

Итак, мой измененный вопрос: к чему в вышеперечисленных шагах привело бы user1наличие доступа по SSH с его ключом?

Связанный контент