Linux
如何在 SSHpass 之後執行命令而不關閉連接?
我正在學習如何使用 Linux,並想看看在使用SSHpass進入機器後是否可以執行一組命令。
#!/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 進入機器就好了,但它不執行echo和date命令。這些命令僅在連接關閉後執行。
我發現另一個執行緒談論使用 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
您可以通過使用該命令的
-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 ~]$