LoginSignup
2
1

More than 5 years have passed since last update.

itamae | 鍵をed25519に変更したらitamaeが失敗した

Last updated at Posted at 2016-11-17

事象

SSHの認証鍵の形式をrsa2からセキュリティが高いed25519形式に変更してitamaeを実行しようとしたらエラーが発生してしまった

# itamaを実行してみた
itamae ssh -u hiro -h 192.168.56.xxx -i /home/xxx/.ssh/id_ed25519_xxx sample.rb --dry-run

#=> INFO : Starting Itamae...
#=>/usr/local/rvm/gems/ruby-2.3.0@itamae/gems/net-ssh-3.2.0/lib/net/ssh.rb:249:in `start': Authentication failed for user xxx@192.168.56.xxx (Net::SSH::AuthenticationFailed)

トラブルシューティング

・鍵や相手側のsshdの問題を疑い、sshログインしてみる

 # sshコマンドでログインしてみる
 ssh -i /home/xxx/.ssh/id_ed25519_xxx xxx@192.168.56.xxx

 #=> ログインOK

相手側のsshdや鍵の問題ではない

・前回の実行から変更したのは、キーペアだけの筈なので、前回のrsa2の鍵を戻して、実行してみる

 # まず、sshコマンドでログイン
 ssh -i /home/xxx/.ssh/id_rsa_xxx xxx@192.168.56.xxx

 #=> ログインOK

 # itamae実行
 itamae ssh -u hiro -h 192.168.56.xxx -i /home/xxx/.ssh/id_rsa_xxx sample.rb --dry-run

 #=> 実行OK

・itamae(ruby)がed25519形式に対応していないと判明したので、エラーをググってみる

ruby net-ssh ed25519 でググると、やはりnet-ssh-3.2.0ではed25519は未対応、4.0系で対応予定だそう

・とりあえず、対応版がリリースしていないか、gem updateしてみる

 # gemのアップデート
 gem update

 # itamaを実行してみた
 itamae ssh -u hiro -h 192.168.56.xxx -i /home/xxx/.ssh/id_ed25519_xxx sample.rb --dry-run

 #=> やはりダメ

・個別にnet-sshをあげる

※以下はあくまでも自己責任でお願いします

# 最新版のnet-sshを調べる
gem search net-ssh

#=> *** REMOTE GEMS ***
#=> net-ssh (3.2.0)

リリース版では 3.2.0 より新しいリリースはないようなので、4系のrcやbeta版を調べる

gem search net-ssh -v 4.0.0.rc

#=> *** REMOTE GEMS ***
#=> net-ssh (4.0.0.beta3, 4.0.0.beta2, 4.0.0.beta1, 4.0.0.alpha4, 4.0.0.alpha3, 4.0.0.alpha2, 4.0.0.alpha1, 3.3.0.beta1, 3.2.1.beta1, 3.2.0.rc2, 3.2.0.rc1, 3.1.0.rc2, 3.1.0.rc1, 3.1.0.beta3, 3.1.0.beta2, 3.0.2.rc1, 3.0.1.rc1, 3.0.0.rc1, 2.10.1.rc2, 2.10.1.rc1, 2.10.0.beta2, 2.10.0.beta1, 2.9.4.rc1, 2.9.3.beta1, 2.9.2.rc3, 2.9.2.rc2, 2.9.2.rc1, 2.9.2.beta)

beta版の最新版 4.0.0.beta3をインストールして、3.2.0と入れ替える

# インストール
gem install net-ssh -v 4.0.0.beta3

# 3.2.0のアンインストール
gem uninstall net-ssh -v 3.2.0

itamaeを実行してみる

# itamae実行
itamae ssh -u hiro -h 192.168.56.xxx -i /home/xxx/.ssh/id_ed25519_xxx sample.rb --dry-run

#=> INFO : Starting Itamae...
#=>/usr/local/rvm/gems/ruby-2.3.0@itamae/gems/net-ssh-4.0.0.beta3/lib/net/ssh/authentication/ed25519_loader.rb:17:in `raiseUnlessLoaded': unsupported key type `ssh-ed25519' -- see Could not find 'rbnacl-libsodium' (>= 1.0.10) among 35 total gem(s) (NotImplementedError)

エラーメッセージが変わった

・依存パッケージがあるようなのであげる

# rbnacl-libsodium をインストール
gem install rbnacl-libsodium

# itamae実行
itamae ssh -u hiro -h 192.168.56.xxx -i /home/xxx/.ssh/id_ed25519_xxx sample.rb --dry-run

#=> INFO : Starting Itamae...
#=>/usr/local/rvm/gems/ruby-2.3.0@itamae/gems/net-ssh-4.0.0.beta3/lib/net/ssh/authentication/ed25519_loader.rb:17:in `raiseUnlessLoaded': unsupported key type `ssh-ed25519' -- see Could not find 'bcrypt_pbkdf' (~> 1.0.0.alpha1) among 38 total gem(s) (NotImplementedError)

# bcrypt_pbkdf (~> 1.0.0.alpha1) をインストール
gem install bcrypt_pbkdf -v 1.0.0.alpha1

・できた!

# itamae実行
itamae ssh -u hiro -h 192.168.56.xxx -i /home/xxx/.ssh/id_ed25519_xxx sample.rb --dry-run

#=> 実行OK
2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1