Из Механизмы IPC в Linux - Введение :
Ядро Linux предоставляет следующие механизмы IPC:
Сигналы {{ 1}} Анонимные каналы Именованные каналы или FIFO Очереди сообщений SysV Очереди сообщений POSIX Общая память SysV Общая память POSIX {{1} } Семафоры SysV Семафоры POSIX Блокировки FUTEX Файловая и анонимная разделяемая память с использованием mmap доменных сокетов UNIX Netlink Sockets {{1} } Сетевые сокеты Механизмы Inotify Подсистема FUSE Подсистема D-Bus
Я бы добавил в список общие файловые дескрипторы.
Проблема в том, что по умолчанию 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'"
Мне удалось заставить это работать, добавив кавычки
su - gol -c "ssh gol@remotehost '/home/scripts/script1.sh'"
Спасибо, Филипп, за обновление!
Я не пробовал обходной путь Филиппа, так как я заработал, добавив кавычки.