9

私のdockerファイルには次のものがあります:

RUN sudo apt-get install sshpass -y
RUN sshpass -p userPassword scp -r user@server:~/data/* ./

しかし、イメージをビルドしようとすると、次のように失敗します。

Exception caught: The command '/bin/sh -c sshpass -p userPassword scp -r user@server:~/data/* ./' returned a non-zero code: 6 -> [Help 1]

ただし、これらの行を削除してイメージをビルドし、コンテナーに ssh して、bash からコマンドを手動で実行すると、完全に機能します。

誰かがこれを回避する方法を教えてもらえますか?

4

1 に答える 1

12

終了コード6は、「ホストの公開鍵が不明です。sshpass は新しい鍵を確認せずに終了します。」を意味します。

したがって、その前にホストのフィンガープリントを入力するか、scp にオプションを~/.ssh/known_hosts追加してホストの公開鍵のチェックを無視します。StrictHostKeyChecking=no

更新された行は次のようになります。

RUN sshpass -p userPassword scp -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -r user@server:~/data/* ./
于 2015-11-27T16:46:57.220 に答える