暗号キーを文字列として渡すことはお勧めできませんが、質問のために、スクリプトでキーを文字列として渡す必要があるのと同じ状況に遭遇したと思います。ファイルに保存されているキーを使用することもできますが、スクリプトの性質上、スクリプトを非常に柔軟にする必要があり、それ自体にすべてを含める必要がありました。だから私は変数を割り当ててそれを渡し、次のようにエコーしていました:
#!/bin/bash
KEY="${ YOUR SSH KEY HERE INSIDE }"
echo "${KEY}" | ssh -q -i /dev/stdin username@IP 'hostnamectl'
exit 0
注:
-q
すべての警告を抑制します
stdin
ちなみに、上記のスクリプトのキャッチは、echoを使用しているため、sshキーを出力しますが、これもお勧めしません。grepを使用して、確実に出力されないものの、まだ出力されるものをgrepできることを非表示にします。エコーからの値。したがって、最終的なcmdは次のように変更できます。
#!/bin/bash
KEY="${ YOUR SSH KEY HERE INSIDE }"
echo "${KEY}" | grep -qw "less" | ssh -q -i /dev/stdin username@IP 'hostnamectl'
exit 0
これは私のために働いた。