web-dev-qa-db-ja.com

Alpine Linuxでsshpassが機能しない

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実行可能ファイルが機能し、その方法でホストに接続できることは言及に値します。

3
Brian

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に変更することで解決しました。

7
Brian

No such file or directoryhiおよびanyinputを参照します:)

Alpine仮想マシンにsshpassをインストールしました。

# sshpass -p <my password> ssh 127.0.0.1

期待どおりに動作します。

[〜#〜] ps [〜#〜]:あなたが何をしているかを知っていると確信していますが、くださいsshpassなどに到達する前に、公開鍵認証を調べていることを確認してください。

1
giorgiga