연결을 닫지 않고 SSHpass 후에 명령을 실행하는 방법은 무엇입니까?

연결을 닫지 않고 SSHpass 후에 명령을 실행하는 방법은 무엇입니까?

저는 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 ~]$

관련 정보