Вход на сервер под Apache

Такая ситуация: есть сервер, сверху стоит веб сервер. Учётка root отключена для входа на сервер по паролю и ей я не пользуюсь. SSH доступ только локальный (сервер в комнате стоит). Есть просто пользователь n3cr0x под ним и работаю в основном.

На днях установил Гит, всё настроил. Сделал пару ключей, публичный закинул на Гит. В общем скрипт пуша работает от apache можно сказать. Всё лежит в /var/www/.ssh/.. Вот как шёл процесс:

sudo mkdir -p /var/www/.ssh
sudo chown -R apache:apache /var/www/.ssh
sudo chmod 700 /var/www/.ssh

sudo -Hu apache nano /var/www/.ssh/config
Host github.com
  User git
  IdentityFile /var/www/.ssh/id_ed25519
  StrictHostKeyChecking no
  UserKnownHostsFile /var/www/.ssh/known_hosts

sudo chmod 600 /var/www/.ssh/config
sudo -Hu apache ssh-keyscan github.com >> /var/www/.ssh/known_hosts

В общем на сервере я могу от apache юзера делать всё что хочу, мне это нужно в первую очередь чтобы не нарушать права доступа у веб сервера. Удобно. Но возник вопрос, а могу ли я например слить что-то с каталога веб сервера или залить через scp ??? Я создал пару ключей на локальном ПК, закинул их по пути где лежит пара для n3cr0x пользователя. Далее под ним залил через scp всё на сервер в /tmp, далее под apache перенёс содержимое публичного ключа в /var/www/.ssh/authorized_keys перезапустил ssh сервис и попробовал подключиться к серверу указав путь к приватному ключу на локальном ПК, но в логах что-то невнятное...

Connection closed by authenticating user apache 192.168.178.21 port 52158 [preauth]

В тенях у Апача естественно нет пароля, но в системе-то под ним работать можно, вопрос, почему нельзя от его имени подключиться по scp и что-то залить или слить из его же директорий. Если у директорий стоит apache:apache права доступа, то не хочу менять на n3cr0x:apache хоть пользователь мой и принадлежит группе apache.

ВОТ ТАК НЕ ПУСКАЕТ:

n3cr0x-PC% ssh -i /home/n3cr0x/Data/Documents/Linux/SSH/nas-apache 
: Permission denied (publickey,gssapi-keyex,gssapi-with-mic).

А ВОТ ТАК ПУСКАЕТ:

n3cr0x-PC% ssh -i /home/n3cr0x/Data/Documents/Linux/SSH/nas-server 
Last login: Fri Jul  5 13:44:51 2024 from 192.168.178.21

Так как у apache нет дом каталога и пароля никогда не было, да и отлично, то место для хранения публичных ключей я имею право выбирать сам (или нет), если для Гита это работает, то возможно и для apache пользователя должно работать?

Есть какие-то варианты решения проблемы или это вообще невозможно?

Я например не понимаю как заставить apache идти по /var/www/.ssh/ и читать authorized_keys...

Так как у него нет дом каталога, то и найти путь он не может, а передать его ему нет возможности. Но при этом Гит каким-то образом подключается к серверу по apache и подобной проблемы не испытывает.

Я создавал такой конфиг:

[n3cr0x@NAS-SERVER ~]$ sudo -Hu apache cat /var/www/.ssh/config
Host github.com
  User git
  IdentityFile /var/www/.ssh/id_ed25519
  StrictHostKeyChecking no
  UserKnownHostsFile /var/www/.ssh/known_hosts

И на основании этого конфига Гит понимает где что лежит и через apach делает всё что ему нужно и доступ у apache к данным директориям и файлам настроен правильно. Но я не понимаю почему создав пару ключей и прописав публичный ключ в /var/www/.ssh/authorized_keys и пытаясь войти по ssh на сервер у меня не получается авторизоваться.

Единственная логичная причина, это то, что ssh не видит этого пути...

.

Читай ман sshd.

Первое домашнее задание: правильно (!) вставить секцию, для чтения публичного ключа пользователя из [например] файла /etc/ssh/pkis/apache.

:wq
--
Live free or die

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".