接続を閉じずに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 ~]$

おすすめ記事