ssh на удаленном хосте, но переключить пользователя на локальный хост, работающий как root

Из Механизмы IPC в Linux - Введение :

Ядро Linux предоставляет следующие механизмы IPC:

 Сигналы {{ 1}} Анонимные каналы 
Именованные каналы или FIFO 
Очереди сообщений SysV 
Очереди сообщений POSIX 
Общая память SysV 
Общая память POSIX {{1} } Семафоры SysV 
Семафоры POSIX 
Блокировки FUTEX 
Файловая и анонимная разделяемая память с использованием mmap 
доменных сокетов UNIX 
Netlink Sockets {{1} } Сетевые сокеты 
Механизмы Inotify 
Подсистема FUSE 
Подсистема D-Bus 
 

Я бы добавил в список общие файловые дескрипторы.

1
03.05.2019, 08:05
2 ответа

Проблема в том, что по умолчанию SSH пытается использовать закрытый ключ root, потому что клиент работает от имени пользователя root. Если вы все еще хотите работать как root, но хотите использовать закрытый ключ gol, это может быть возможно, потому что root имеет доступ ко всему . Таким образом, чтобы вызвать ssh от имени root, но использовать закрытый ключ gol, вам нужно только указать ssh, где находится закрытый ключ. Я не знаю вашу систему, но есть вероятность, что она здесь:

/home/gol/.ssh/id_rsa

Вы можете указать ssh, какой закрытый ключ использовать:

ssh -i /home/gol/.ssh/id_rsa gol@remotehost '/home/scripts/script1.sh'

В качестве альтернативы вы можете использовать способ, которым вы изначально пытались, правильно процитировав его:

su - gol -c "ssh gol@remotehost '/home/scripts/script1.sh'"
0
28.01.2020, 00:12

Мне удалось заставить это работать, добавив кавычки

su - gol -c "ssh gol@remotehost '/home/scripts/script1.sh'"

Спасибо, Филипп, за обновление!

Я не пробовал обходной путь Филиппа, так как я заработал, добавив кавычки.

0
28.01.2020, 00:12

Теги

Похожие вопросы