Chef

Chef - 無密碼的 SSH

  • December 20, 2014

執行時:

knife bootstrap {{IP}} --ssh-user centos --ssh-password '' \
--sudo --use-sudo-password --node-name node1 \
--run-list 'recipe[learn_chef_httpd]'

我收到以下錯誤:

ERROR: Net::SSH::AuthenticationFailed: Authentication failed for user centos@{{IP}}@{{IP}}

我正在嘗試連接到沒有密碼的 centos 使用者,因為我想使用 SSH-Key Auth。

我試過傳遞一些排列:

knife bootstrap {{IP}} -x centos -i .chef/james-chef-validator.pem  --sudo  --run-list 'recipe[learn_chef_httpd]'

都沒有成功…

如果使用 -VV 執行:

...

DEBUG: allowed methods: publickey,gssapi-keyex,gssapi-with-mic
DEBUG: none failed
DEBUG: trying publickey
DEBUG: connecting to ssh-agent
ERROR: could not connect to ssh-agent
ERROR: all authorization methods failed (tried none, publickey)
ERROR: Net::SSH::AuthenticationFailed: Authentication failed for user  centos@{{IP}}@{{IP}}

有任何想法嗎?

修復!

因此,當您使用託管廚師時,您需要使用引導程序傳遞一個私鑰,並將公鑰放在您的 autherized_keys 文件中……

  1. 安裝 ChefSDK
  2. 從託管 Chef 獲取您的入門工具包
  3. 將入門工具包提取到 ~/chef-repo
  4. 生成一個新的密鑰對: ssh-keygen
  5. 將公鑰添加到您的 autherized_keys 文件中: $ cat id_rsa.pub >> authorized_keys
  6. 使用以下命令執行刀引導程序:

sudo knife bootstrap {{server-ip}} --ssh-user {{your-server-user}} -i ~/.ssh/id_rsa --sudo --node-name web1

那應該工作!

我還建議您作為 –ssh-user 傳遞的使用者具有無密碼 sudo 訪問權限。

引用自:https://serverfault.com/questions/653543