Будучи пользователем Sudo, действительно ли возможно создать ключ SSH для пользователя в том же сервере Linux? У этого пользователя Sudo нет полномочий пользователя Переключателя.
У меня есть сервер, где я Вхожу в систему, поскольку sudo пользователь говорят, что 'администратор' (не имеет полномочий пользователя переключателя), и у меня есть другой пользователь, говорят 'user1'. У меня есть сценарий в моем сервере, который должен работать как 'user1', который должен назвать другой сценарий, работающий в удаленном хосте (удаленный хост имеет названный 'user1' подобного пользователя) во время этого процесса, 'user1' нужен авторизованный ключ для удаленной аутентификации хоста. Так как у sudo пользователя 'администратор' нет полномочия переключиться как 'user1' и генерировать ssh ключи, я должен буду генерировать ssh ключи для 'user1' как 'администратор'
Для этого не нужно никакого судо. Предположим, что у вас на сервере2 запущен sshd с passwordAuth для user1, сделайте следующее с сервера1:
mkdir ~/.ssh
chmod 700 ~/.ssh
ssh-keygen -t rsa -f ~/.ssh/id_rsa
ssh-copy-id -i ~/.ssh/id_rsa.pub user1@server2
На данный момент ~/.ssh/authorized_keys установлен на server2, и если pubkeyAuth включен на server2, то вы можете попробовать ssh без pwd:
ssh user1@server2 ls
сейчас, если вы хотите вернуть (разрешить user1 с server2 для входа в server1 с помощью pubKey), то сделайте следующее с user1 на server2:
scp user1@server1:.ssh/id_rsa .ssh/id_rsa
chmod 600 .ssh/id_rsa
и на server1:
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
Да, это возможно без проблем. Вы можете получить свой ssh приватный ключ в файл .ssh/authorized_keys
так же, как если бы вы ssh-d на этот счет.
P.s.: Кстати, нет такого понятия как "sudo user". Вы, наверное, думаете о пользователе, способном получить корневую оболочку с помощью команды sudo, но выяснить правильное значение Вашей терминологии было не тривиально. Также не существует такой вещи, как "переключиться на пользователя". Как Вы думаете, на каком-то типе su
-ing? Возможно, Вам пришлось использовать всю известную терминологию.
Это зависит от того, как настроена учетная запись sudo
. Часто она достаточно сильно ограничена, чтобы позволить только определенный набор операций.
В случае сомнений обратитесь за помощью к своему администратору.
Другой подход: Не требуется, чтобы файл ключа ssh находился в определенном месте. Вы можете создать набор ключей в любом месте, добавить открытый ключ в файл удаленных пользователей authorized_keys
и затем использовать нечто подобное:
sudo ssh -i /path/to/privkey user@host