저는 Linux 사용 방법을 배우고 있으며 다음을 사용하여 일련의 명령을 실행할 수 있는지 확인하고 싶었습니다.SSH 비밀번호기계에 들어가세요.
#!/usr/bin/env bash
clear
virsh start rhel8.4-2server
sleep 10
sshpass -p "PASSWORD_HERE" ssh -o StrictHostKeyChecking=no server@IP_ADDRESS_HERE
echo "Hello and good day" && date
이것은 기계에 정상적으로 SSH로 연결되지만 실행되지는 않습니다.에코그리고날짜주문하다. 이 명령은 연결이 닫힌 후에만 실행됩니다.
EOF 사용에 관해 이야기하는 또 다른 스레드를 찾았지만 더 자세히 읽으면서. 명령이 실행된 후 연결이 닫힙니다. 하지만 연결이 계속 열려 있기를 바랍니다.
#!/usr/bin/env bash
clear
virsh start rhel8.4-2server
sleep 10
sshpass -p "PASSWORD_HERE" ssh -T -o StrictHostKeyChecking=no server@IP_ADDRESS_HERE << EOF
echo "Hello and good day" && date
EOF
답변1
-t
명령의 플래그(의사 터미널 할당)를 사용한 ssh
다음 명령을 지정하여 이를 수행할 수 있습니다 ; /bin/bash
.
예:
[root@server1 ~]# sshpass -p 'hunter2' ssh -t bubba@server2 'date; /bin/bash'
Thu Sep 30 22:24:32 EDT 2021
[bubba@server2 ~]$