Следующая команда дает ожидаемый результат (файл создается):
sshpass -p pas ssh root@host 'touch foo'
Но следующий ничего не делает на удаленном хосте:
sudo sshpass -p pas ssh root@host 'touch foo'
Единственная разница здесь только в режиме sudo
.
В чем причина? И как это можно решить?
первая команда дает мне 0, а вторая не дает вывода
Невозможно, запустите его, а затем запустите echo $?
в качестве следующей команды.
то же самое, что я заметил, так это то, что выполнение первой команды занимает больше времени, чем вторая ... может быть, я могу попробовать какой-нибудь подробный режим?
Вы можете попробовать научиться бегать echo $?
.
Нашел проблему, написал ответ.
Проблема более заметна при беге ssh -v
.
С sudo
прерывания связи после обнаружения ключа хоста сервера.
Для решения задачи ssh
нужно запустить со следующим аргументом -o "StrictHostKeyChecking no"
.
Это должно работать, опубликуйте вывод
echo $?
после выполнения команды.