3

У меня есть SSH-сервер с аутентификацией только ключа, и я хочу добавить ключ для нового пользователя.

Я вхожу в систему с одним пользователем (kidmose), я пытаюсь добавить ключ к новому пользователю (удаленному) authorized_keys, и это не удается:

kidmose@hech-remote-control:~$ sudo cat .ssh/id_rsa.pub > /home/remote/.ssh/authorized_keys
-bash: /home/remote/.ssh/authorized_keys: Permission denied

Я sudo su сначала и все работает:

kidmose@hech-remote-control:~$ sudo su
[sudo] password for kidmose: 
root@hech-remote-control:/home/kidmose# cat .ssh/id_rsa.pub > /home/remote/.ssh/authorized_keys

Информация о бонусе:

kidmose@hech-remote-control:~$ ll /home/remote/.ssh/authorized_keys
-rw-r--r-- 1 remote remote 409 Oct 16 07:14 /home/remote/.ssh/authorized_keys
kidmose@hech-remote-control:~$ uname -a
Linux hech-remote-control.egki 3.13.0-36-generic #63-Ubuntu SMP Wed Sep 3 21:30:07 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux

Так в чем же разница между этими двумя подходами?

2 ответа2

1

В первом случае

 kidmose@hech-remote-control:~$ sudo cat .ssh/id_rsa.pub > /home/remote/.ssh/authorized_keys
  • ваш bash (попробуйте) открыть перенаправление в файл /home/remote/.ssh/authorized_keys
  • затем выполните sudo cat .ssh/id_rsa.pub

Поскольку у вас нет доступа, команда не выполнена.

1

В первом случае единственной командой, выполняемой с привилегиями суперпользователя, является cat . Перенаправление на /home/remote/.ssh/authorized_keys выполняется как обычный пользователь.

Во втором случае вы переключаетесь на учетную запись root, и все команды выполняются с привилегиями суперпользователя.

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