sshpassはパスワードを文字「&」で区切られた2つの文字列に分割します。

sshpassはパスワードを文字「&」で区切られた2つの文字列に分割します。

値が abc123&zxcv456 のパスワード変数 PASS があります。以下のパスワード変数を使用してJenkinsでSSHを実行しようとすると

sshpass -p ${PASS} ssh -o StrictHostKeyChecking=no [email protected] 'echo '${PASS}' | sudo -S docker stats --no-stream'

特殊文字&前の文字列のみが解釈され、PASS変数の値がabc123として読み込まれます。この問題を解決するのに役立ちますか?

PS:エスケープ文字「${PASS}」を使ってみましたが、役に立ちません。

答え1

Jenkins Pipelineに組み込まれた資格証明ストアを使用し、sshAgentステップSSHユーザー名/パスワードをsshコマンドに渡します。

Freestyle ジョブのジョブ構成 GUI にも同様のオプションがあります。

答え2

パスワードを次のように定義します。

abc123\&zxcv456

関連情報