itamae-kitchen / itamae

Configuration management tool inspired by Chef, but simpler and lightweight. Formerly known as Lightchef.
https://itamae.kitchen/
MIT License
1.12k stars 125 forks source link

Itamae doesn't raise an error when private-key-file doesn't exist #365

Closed topstone closed 9 months ago

topstone commented 12 months ago

(必要なら英語でも書きます)

itamae ssh 起動時に --key= で存在しない file を指定しても net-ssh まで error が発生せず、net-ssh までたどり着いてやっと Authentication failed for user xxx@yyy.com (Net::SSH::AuthenticationFailed) が発生します。これは認証の何について問題が発生しているのかの切り分けが難しいと思われます。

lib/itamae/backend.rb の263行目あたりですぐに file の有無を確認する処理を入れておけば便利だと思うのですが、いかがでしょうか。(itamae, specinfra, net-ssh のどの層で扱うと理想的なのか、よく分かっていなくてすみません。)

unasuke commented 12 months ago

@topstone I followed the implementation of Itamae, Specinfra, and net-ssh. In my opinion, it is appropriate to implement a file existence check for net-ssh. However, if that change is not acceptable for net-ssh, checking with itamae is acceptable.

(Itamae, Specinfra, net-sshでの処理を追ってみましたが、net-sshに対して存在確認する変更を入れるのが適切なように感じました。ただnet-ssh側でその変更が受け入れられなかった場合は、itamae側でファイルの存在確認を入れるのもいいかなと思っています)

unasuke commented 12 months ago

In net-ssh, there is code to check whether the specified key file exists. Hmm....

https://github.com/net-ssh/net-ssh/blob/master/lib/net/ssh/authentication/key_manager.rb#L268-L270

topstone commented 11 months ago

Reported on "net-ssh" repo.

https://github.com/net-ssh/net-ssh/pull/929

unasuke commented 9 months ago

If necessary, reopen please.