Укажите, какую версию дублирования Python следует использовать

Ваше решение работает как с sshpass, так и без него. Если оно не работает у вас, вероятно, что-то еще не так.

Также обратите внимание, что вы всегда должны заключать в кавычки каждую переменную.

Кроме того, вам не следует легкомысленно отключать stricthostkeychecking. Если ваш ключ хоста часто меняется, ваш сервер, вероятно, скомпрометирован

Вот несколько способов достижения цели:


Использование разделителя команд (;, &&,||)

sshpass -p "$password" ssh -t -oStrictHostKeyChecking=no "$username@ipaddress" 'command_one; command_two; command_three'

Использование здесь -doc (Одинарная кавычка EOF для расширения любых переменных/команд на удаленном хосте):

sshpass -p "$password" ssh -t -oStrictHostKeyChecking=no "$username@ipaddress" <<EOF
  command_one
  command_two
  command_three
EOF

Использование отдельного файла:

файл.sh

command_one
command_two
command_three

Затем выполнить так:

cat file.sh | sshpass -p "$password" ssh -t -oStrictHostKeyChecking=no "$username@ipaddress"

Использование ssh-туннеля:

sshpass -p "$password" ssh -f -L 3306:localhost:3306 "$username@ipaddress" sleep 300 # This will open a tunnel to the remote host and hold it open for 5 minutes
ssh -T "$username@ipaddress" 'command_one'
ssh -T "$username@ipaddress" 'command_two'
ssh -T "$username@ipaddress" 'command_three'

0
24.07.2020, 21:33
0 ответов

Теги

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