SSHコマンドはコンソールでは機能しますが、bashスクリプトでは機能しません。診断方法は何ですか?

SSHコマンドはコンソールでは機能しますが、bashスクリプトでは機能しません。診断方法は何ですか?

複数のsshコマンドを実行するbashスクリプトがあり、問題が発生しました。スクリプトに自動sshキー生成を追加しましたが、コンソールから手動で入力すると、sshコマンドは機能しますが、スクリプト内では機能しない奇妙なバグに遭遇しました。

一連のコマンドは次のとおりです。 (キー生成>リモートスクリプトの確認>リモートスクリプトの実行)

mkdir -p ~/.ssh
echo "StrictHostKeyChecking no" > ~/.ssh/config
ssh-keygen -q -t rsa -N '' <<< ""$'\n'"y" 2>&1 >/dev/null
sshpass -f password.txt ssh-copy-id [email protected]
ssh [email protected] "test -e /home/user/script.sh"
ssh [email protected] "echo password | sudo -S /home/user/script.sh > log.txt"

これはコンソールでは完全に機能しますが、突然スクリプトでは機能しません。唯一の違いは、ログにデータを追加するスクリプトにいくつかのエコーがあることです。これは ssh コマンドには影響しません。

最初の ssh コマンドは機能しますが、2 番目のコマンドは機能しません。接続は6回拒否され、通常は255リターンで終了しました。以下は、-vフラグで実行したときのサンプルログです。ssh [email protected] "test -e /home/user/script.sh"ssh [email protected] "echo password | sudo -S /home/user/script.sh > log.txt"

OpenSSH_7.2p2 Ubuntu-4ubuntu2.4, OpenSSL 1.0.2g  1 Mar 2016
debug1: Reading configuration data /root/.ssh/config
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug1: Connecting to x.x.x.x [x.x.x.x] port 22.
debug1: connect to address x.x.x.x port 22: Connection refused
ssh: connect to host x.x.x.x port 22: Connection refused
OpenSSH_7.2p2 Ubuntu-4ubuntu2.4, OpenSSL 1.0.2g  1 Mar 2016
debug1: Reading configuration data /root/.ssh/config
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug1: Connecting to x.x.x.x [x.x.x.x] port 22.
debug1: connect to address x.x.x.x port 22: Connection refused
ssh: connect to host x.x.x.x port 22: Connection refused
OpenSSH_7.2p2 Ubuntu-4ubuntu2.4, OpenSSL 1.0.2g  1 Mar 2016
debug1: Reading configuration data /root/.ssh/config
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug1: Connecting to x.x.x.x [x.x.x.x] port 22.
debug1: connect to address x.x.x.x port 22: Connection refused
ssh: connect to host x.x.x.x port 22: Connection refused
OpenSSH_7.2p2 Ubuntu-4ubuntu2.4, OpenSSL 1.0.2g  1 Mar 2016
debug1: Reading configuration data /root/.ssh/config
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug1: Connecting to x.x.x.x [x.x.x.x] port 22.
debug1: connect to address x.x.x.x port 22: Connection refused
ssh: connect to host x.x.x.x port 22: Connection refused
OpenSSH_7.2p2 Ubuntu-4ubuntu2.4, OpenSSL 1.0.2g  1 Mar 2016
debug1: Reading configuration data /root/.ssh/config
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug1: Connecting to x.x.x.x [x.x.x.x] port 22.
debug1: connect to address x.x.x.x port 22: Connection refused
ssh: connect to host x.x.x.x port 22: Connection refused
OpenSSH_7.2p2 Ubuntu-4ubuntu2.4, OpenSSL 1.0.2g  1 Mar 2016
debug1: Reading configuration data /root/.ssh/config
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug1: Connecting to x.x.x.x [x.x.x.x] port 22.
debug1: connect to address x.x.x.x port 22: Connection refused
ssh: connect to host x.x.x.x port 22: Connection refused

ランタイムにはps auxもあります。

ps aux | grep ssh
root      1287  0.0  0.3  65504  6500 ?        Ss   Sep18   0:02 /usr/sbin/sshd -D
root      4409  0.0  0.0  14220   888 pts/0    S+   11:14   0:00 grep --color=auto ssh
root     20680  0.0  0.3  94860  6900 ?        Ss   09:09   0:00 sshd: user [priv]
user    20760  0.0  0.1  94860  3540 ?        S    09:09   0:00 sshd: user@notty
user    20761  0.0  0.1  12876  2000 ?        Ss   09:09   0:00 /usr/lib/openssh/sftp-server
root     21024  0.0  0.3  94860  7052 ?        Ss   08:13   0:00 sshd: user [priv]
user    21133  0.0  0.2  94860  4636 ?        R    08:13   0:04 sshd: user@pts/0

それで、私の質問はこの問題をどのように正確に診断して解決しますか?

まず、ありがとうございます。

ベストアンサー1

おすすめ記事