Alpine Linuxにsshpassをインストールするとインストールされ、引数なしで実行するとドキュメントが表示されますが、引数(有効または無効)を使用するとsshpass: Failed to run command: No such file or directory
が返されます。
パスされており、絶対パスを使用している場合でも同じ動作をします。これをansibleで使用したいのですが、直接機能しません。
他の人にとってこの機能または機能しないことに関する情報をオンラインで見つけることができないようですが、他の人のコンテナーと自分のコンテナーを使用したため、機能させることもできませんでした。 https://pkgs.alpinelinux.org/package/v3.3/main/x86/sshpass
$ docker run -it --rm williamyeh/ansible:Alpine3 ash
/ # sshpass
Usage: sshpass [-f|-d|-p|-e] [-hV] command parameters
-f filename Take password to use from file
-d number Use number as file descriptor for getting password
-p password Provide password as argument (security unwise)
-e Password is passed as env-var "SSHPASS"
With no parameters - password will be taken from stdin
-P Prompt Which string should sshpass search for to detect a password Prompt
-v Be verbose about what you're doing
-h Show help (this screen)
-V Print version information
At most one of -f, -d, -p or -e should be used
/ # sshpass hi
sshpass: Failed to run command: No such file or directory
/ # which sshpass
/usr/bin/sshpass
/ # /usr/bin/sshpass
Usage: sshpass [-f|-d|-p|-e] [-hV] command parameters
-f filename Take password to use from file
-d number Use number as file descriptor for getting password
-p password Provide password as argument (security unwise)
-e Password is passed as env-var "SSHPASS"
With no parameters - password will be taken from stdin
-P Prompt Which string should sshpass search for to detect a password Prompt
-v Be verbose about what you're doing
-h Show help (this screen)
-V Print version information
At most one of -f, -d, -p or -e should be used
/ # /usr/bin/sshpass anyinput
sshpass: Failed to run command: No such file or directory
基礎となるssh実行可能ファイルが機能し、その方法でホストに接続できることは言及に値します。
SSHpassは問題なく動作していましたが、Alpineコンテナpython:3.6-Alpineにはopensshがインストールされていません。
このエラーメッセージは、sshコンポーネントが失敗していることについて言及していないため、混乱を招きます。
これは、apk add --update openssh
を実行することで修正できます。
これは、Dockerfileの行をRUN apk add --update --no-cache sshpass
からRUN apk add --update --no-cache openssh sshpass
に変更することで解決しました。
No such file or directory
はhi
およびanyinput
を参照します:)
Alpine仮想マシンにsshpassをインストールしました。
# sshpass -p <my password> ssh 127.0.0.1
期待どおりに動作します。
[〜#〜] ps [〜#〜]:あなたが何をしているかを知っていると確信していますが、くださいsshpass
などに到達する前に、公開鍵認証を調べていることを確認してください。