Исправление потери доступа по SSH с помощью ключа rsa
Фон
У меня есть сервер с SSH-доступом через ras-ключи. Доступ к паролю не разрешен.
Работало нормально. Мой пользователь (я назову это USER1) и пользователь root могут войти в систему с соответствующими ключами.
ИЗМЕНЕНИЯ, КОТОРЫЕ ПОТЕНЦИАЛЬНО ВЫЗЫВАЛИ ПРОБЛЕМУ
Вчера я сделал несколько изменений на сервере, следуя инструкциям в этой статье, чтобы предоставить новому пользователю (USER2) ограниченный доступ к одной папке (веб-корню). Я также следовал инструкциям в этой статье .
Чтобы суммировать эти изменения, я создал нового пользователя (USER2) и выполнил bindfs
веб-root ( /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 с его ключом?
0 ответов на вопрос
Похожие вопросы
-
3
Ubuntu Server с рабочим окружением GNOME - настройка разрешений файла конфигурации Apatche
-
2
Как разрешить запуск программ, требующих прав администратора, при запуске в Vista?
-
1
Windows не может записать на диск во время chkdsk и сохранения в офисе
-
-
5
Есть ли способ запустить запланированное задание в Windows XP без необходимости ввода имени пользова...
-
3
Как я могу запретить другим пользователям просматривать содержимое моего домашнего каталога, кроме о...
-
8
Как я могу дать права на запись в папку всем пользователям Linux?
-
7
Удаление «восстанавливаемых» файлов в Vista
-
1
Доступ к бывшему диску XP в качестве второго диска под Windows 7
-
5
Доступ к бывшему диску XP в качестве второго диска под Windows 7 без Chowning
-
1
В чем разница между группами по умолчанию в Mac OS X?