Рейтинг:0

подстановка команд не работает при запуске из ssh

флаг km

У меня есть Ubuntu vps, к которому я подключаюсь со своего ноутбука, на котором также работает Ubuntu.

Когда я подключаюсь по ssh root@server к своему серверу, я могу успешно выполнить следующую команду:

root@server:~# wg set wg0 peer $(cat /etc/wireguard/clients/guard001_pub) remove

но когда я не хочу входить в систему и просто хочу запустить команду удаленно, я получаю ошибку отказа в разрешении, которую я не понимаю, почему. Потому что файл принадлежит root и имеет все разрешения rwx.

username@mymachine:~$ ssh root@server "wg set wg0 peer $(cat /etc/wireguard/clients/guard001_pub) remove"

дает следующую ошибку:

cat: /etc/wireguard/clients/guard001_pub: Отказано в доступе
Ключ имеет неправильную длину или формат: `удалить'

Может ли кто-нибудь сказать, почему это происходит и каков наилучший обходной путь?

Рейтинг:0
флаг hr

Поскольку вы заключили команду в двойные кавычки, $(кот /etc/wireguard/clients/guard001_pub) оценивается вашим местный оболочка, перед ssh команда выполняется.

Поскольку местный кот /etc/wireguard/clients/guard001_pub происходит сбой, подстановка локальной команды приводит к пустой строке, а удаленная команда становится

wg установить удаленный узел wg0

так что Удалить передается как ключ.

Вместо этого используйте одинарные кавычки:

ssh root@server 'wg set wg0 peer $(cat /etc/wireguard/clients/guard001_pub) remove'

или, может быть, лучше

ssh root@server 'wg set wg0 peer "$(cat /etc/wireguard/clients/guard001_pub)" удалить'

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.