Можно ли, будучи пользователем Sudo, создать SSH-ключ для пользователя на том же сервере Linux? У этого пользователя Sudo нет привилегии пользователя Switch.
У меня есть сервер, на котором я вхожу в систему как пользователь sudo и говорю «admin» (у меня нет прав на переключение), а другой пользователь говорит «user1». У меня есть сценарий на моем сервере, который должен запускаться как 'user1', который должен вызывать другой скрипт, запущенный на удаленном хосте (удаленный хост имеет аналогичного пользователя с именем 'user1') во время этого процесса, пользователю 'user1' нужен авторизованный ключ для удаленного аутентификация хоста. Поскольку пользователь sudo admin не имеет права переключаться как user1 и генерировать ключи ssh, мне придется сгенерировать ключи ssh для user1 как admin
Да, это возможно без проблем. Вы можете получить свой закрытый ключ ssh в .ssh/authorized_keys
файл так же, как если бы вы ssh-d в эту учетную запись.
PS: Кстати, такого понятия как "пользователь sudo" не существует. Вы, вероятно, думаете о пользователе, способном получить корневую оболочку с помощью команды sudo, но выяснить правильное значение вашей терминологии было нетривиальной задачей. Также не существует такой вещи, как «переключение на пользователя». Вы думаете о каком-то su
-инг? Может быть, вам пришлось использовать повсеместно известную терминологию.
Для этого не нужно никакого sudo. Предполагая, что у вас есть sshd, запущенный с passwordAuth на server2 для пользователя user1, выполните следующие действия с server1:
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
Это зависит от того, как sudo
настроен для вашей учетной записи. Часто он довольно сильно ограничен, чтобы разрешить только определенный набор операций.
Если сомневаетесь, поговорите со своим администратором, чтобы он вам помог.
Другой подход: нет необходимости, чтобы файл ключа ssh находился в определенном месте. Вы можете создать набор ключей где угодно, добавить открытый ключ удаленным пользователям authorized_keys
файл, а затем используйте что-то вроде этого:
sudo ssh -i /path/to/privkey user@host