Невозможно выполнить удаленные команды через ssh sesion в ожидаемом скрипте - PullRequest
0 голосов
/ 29 мая 2019

Команда, используя ожидаемый сценарий, не видит ничего, что происходит при запросе пароля, и мои удаленные команды не выполняются.Я использую SSH для прокси, а затем оттуда выполняю ожидаемый сценарий для SSH на удаленной машине и запускаю несколько команд.

`#!/usr/bin/expect -f
set PROXY_PASSWORD $env(PROXY_PASSWORD)
set DOM0_PASSWORD $env(DOM0_PASSWORD)
set DOM0_USERNAME $env(DOM0_USERNAME)
spawn ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null $env(PROXY_USERNAME)@8.4.1.2
expect "password"
send -- "$PROXY_PASSWORD\r"
send "ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null $DOM0_USERNAME@$dom0_host_ip 'export PATH=~/.local/bin:\$PATH; source ~/.bash_profile; source /etc/profile.d/lang.sh; sed -i 's/enabled=0/enabled=1/g' /etc/yum.repos.d/*; yum install -y centos-release-scl'\r"
expect "password"
send "$DOM0_PASSWORD\r"
interact`

output: ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/d ev/null root@10.2.1.100 'export PATH=~/.local/bin:$PATH; source ~/.bash_profile;<br> source /etc/profile.d/lang.sh; sed -i 's/enabled=0/enabled=1/g' /etc/yum.repos.d /*; yum install -y centos-release-scl' Warning: Permanently added '10.2.1.100' (ECDSA) to the list of known hosts.

root@10.2.1.100's password: 
Finished: SUCCESS

My Goalэто ssh на прокси, затем запустить ожидаемый сценарий, который будет ssh удаленно и запустить команды и выйти.

Я также пробовал ниже, но после входа в систему никакие команды не выполняются.

spawn ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null $env(PROXY_USERNAME)@8.1.2.2
expect "password"
send "$PROXY_PASSWORD\r"
expect "$"
send "ls -ltr\r"
send "pwd\r"
send "ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null $NGN_DOM0_USERNAME@$dom0_host_ip\r"
expect "password"
send "$DOM0_PASSWORD\r"
send "pwd\r"
expect "#"
send "source /etc/profile.d/lang.sh\r"
send "export PATH=~/.local/bin:\$PATH\r"
send "source ~/.bash_profile\r"
send "source /etc/profile.d/lang.sh\r"
send "sed -i 's/enabled=0/enabled=1/g' /etc/yum.repos.d/*\r"
send "yum install -y centos-release-scl\r"
interact
...