SSH ログインを自動化すると、リモート シェルが応答しなくなり、クライアント ターミナルに戻ります (エラーなし)

SSH ログインを自動化すると、リモート シェルが応答しなくなり、クライアント ターミナルに戻ります (エラーなし)

Ubuntu 14.04 LTS 以外のツールに問題があります。いくつかの Sophos UTM ファイアウォールへの ssh ログインを自動化し、その後すぐに「sudo su -」と正しいパスワードを使用して権限を昇格させたいと思っています。スクリプトは KeePass URL フィールドから直接実行されるため、プレーン テキスト パスワードについて心配する必要はありません (ダブルクリックでスクリプトが実行され、スクリプトの背後にある agrument/KeePass {Placeholder} を介して正しいパスワードが入力されます)。リモート ルート シェルを除いて、このすべてを実行できました。リモート ルート シェルはコマンドを実行せず、Ubuntu システムへの「接続を切断」します。そのため、リモートで実行しようとしているコマンドは 4 ~ 5 秒間実行されず、その後、何が起こったのかを通知せずに Ubuntu システムで突然実行されます。

完全に機能するリモート シェルを使用するには、何をする必要がありますか? Sophos UTM が多すぎるため、SSH キーと直接ルート ログインは解決策ではありません。

起こっていることを説明しました:

sshtool.sh:
#!/usr/bin/expect -f
spawn sshpass -pPASSWORD ssh -t [email protected] "sudo su -"
expect -- "oot's password:"
send "PASSWORD\r"
expect -- "/root #"
expect eof



What happens in the terminal:
vct@vct-virtual-machine:~$ ./sshtool.sh
spawn sshpass -pPASSWORD ssh -t [email protected] sudo su -
root's password:
utm:/root # whoami
# *enter*
# not reacting for 4-5 seconds
vct@vct-virtual-machine:~$ whoami
vct
vct@vct-virtual-machine:~$

次のようにスクリプトを変更しても、接続が切断される問題は解決されません。

sshtool.sh:
#!/usr/bin/expect -f
spawn ssh [email protected]
expect -- "password:"
send "PASSWORD\r"
expect -- "/home/login > "
send -- "sudo su -\r"
expect -- "oot's password:"
send "PASSWORD\r"
expect -- "/root #"
send -- "whoami\r"
expect eof


vct@vct-virtual-machine:~$ ./sshtool.sh
spawn ssh [email protected]
[email protected]'s password:
Last login: Mon Apr 18 09:14:41 2016 from 192.168.1.44


Sophos UTM
(C) Copyright 2000-2015 Sophos Limited and others. All rights reserved.
Sophos is a registered trademark of Sophos Limited and Sophos Group.
All other product and company names mentioned are trademarks or registered
trademarks of their respective owners.

For more copyright information look at /doc/astaro-license.txt
or http://www.astaro.com/doc/astaro-license.txt

NOTE: If not explicitly approved by Sophos support, any modifications
      done by root will void your support.

<M> loginuser@utm:/home/login > sudo su -
root's password:
# Following "whoami" directly executed by the script itself works fine
<M> utm:/root # whoami
root
# After 4-5 seconds, it's dropping the connection again
<M> utm:/root # vct@vct-virtual-machine:~$

前もって感謝します!

答え1

私もこれに似た問題を抱えていました。問題は、リモートの .bashrc ファイルに、対話的に実行されていない場合は何もしないという行がいくつか含まれていたことです。

関連情報