Chef - SSH sans mot de passe

En faisant:

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

Je reçois l'erreur suivante:

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

J'essaie de vous connecter à l'utilisateur centos, qui n'a pas de mot de passe parce que je veux utiliser SSH-Key Auth.

J'ai essayé de passer un certain nombre de permutations:

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

Tous sans succès ...

Si S. fonctionne -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}}

Des idées?
Invité:

Hannah

Confirmation de:

Je le répare!

Donc, quand vous utilisez l'hébergement Chef, Vous devez transférer la clé fermée à l'aide du démarrage et avez une touche Ouvrir dans votre fichier. autherized_keys ....

Ensemble ChefSDK

SCP Votre démarreur du chef

Supprimer le kit de départ à

~/chef-repo

Générez une nouvelle paire de clés:

ssh-keygen

Ajoutez la clé publique à votre dossier autherized_keys:

$ cat id_rsa.pub >> authorized_keys

Exécutez la bande de chargement du couteau avec les éléments suivants:


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


Ça devrait marcher!

Je suggère également que l'utilisateur que vous spécifiez comme --ssh-user, eu un accès diversifié sudo.

Dominique

Confirmation de:

Vous avez besoin de clés SSH.

Server à l'origine 'node1' (Spécifié ci-dessous) Vous aurez besoin d'un mot de passe installé pour votre utilisateur. 'centos' (mentionné ci-dessous). Après avoir installé le mot de passe de cet utilisateur, suivez les instructions ci-dessous.

Pour le configurer, connectez-vous au serveur client. (ça marche chef) En tant qu'utilisateur chef Et lancement

ssh-keygen -t rsa

Suivez les instructions (Cliquez Enter, Quand on vous demande mot de passe)

Puis exécutez la commande suivante

ssh-copy-id <targetuser>@<targetserver>

Suivez les instructions à l'écran et c'est tout.

Après cela, le chef doit automatiquement obtenir cette clé ssh.

ÉDITER:

Pour Hosted Chef Le processus est un peu différent. DANS Chef Manage Allez à l'administration&gt; Utilisateurs&gt; et sélectionnez votre nom d'utilisateur. Là, vous devez voir la clé ouverte.

Connectez-vous au serveur cible en tant qu'utilisateur cible, puis vérifiez si vous avez un catalogue. ~ / .ssh

ls ~/.ssh

Si c'est écrit là-bas «ls: Incapable d'accéder ~ / .ssh: Il n'y a pas de fichier ou de répertoire de ce type, "exécuter

mkdir ~/.ssh

Ensuite, utilisez l'éditeur de fichier de ligne de commande que vous avez sélectionné (je préfère VIM), Créer un fichier. ~ / .ssh / authorized_keys et copier la touche ouverte que vous avez trouvée sur Hosted Chef, Dans ce fichier.

ÉDITER:

Si votre clé publique a un format de départ:

-----BEGIN PUBLIC KEY-----

Vous devez d'abord la convertir en un format de clé open. SSH.

Pour ce faire, créez un fichier avec le nom de votre ordinateur local. publickey.pem Et copiez votre clé publique. Puis ouvrez le terminal dans cet endroit et exécutez:

ssh-keygen -f publickey.pem -i -m PKCS8

J'espère que cela aidera. Tim.
</targetserver></targetuser>

Blanche

Confirmation de:

Je ne connais personne qui utiliserait les clés accordées à partir de Hosted Chef Server ou local Chef Server, comme touches d'authentification SSH, Comme Tim Offres.

Touches de serveur Chef, Habituellement utilisé par les instruments clients Chef, tel que chef-client et Knife, Pour l'authentification B. API Serveur Chef.

Création d'une paire de touches séparées pour l'authentification SSH, Comme la première réponse de Tim et la réponse finale de James, - C'est le bon chemin. Cela peut être fait manuellement ou en utilisant Chef Configurez le système avec des clés appropriées SSH.

Pour répondre aux questions, connectez-vous ou registre