Lors de l'exécution:
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 à Centos Utilisateur qui n'a pas de mot de passe, car je souhaite utiliser Auth-Key SSH.
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]'
tout sans succès ...
si courir avec -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?
Je ne suis au courant de quiconque utilise les touches fournies à partir d'un serveur Chef Hébergement ou du serveur Chef sur site comme des clés d'authentification SSH comme suggère TIM.
Les clés fournies par le serveur Chef ne sont généralement utilisées que par des outils clients de Chef tels que Chef-Client et Couteau pour authentifier l'API du serveur Chef.
Création d'une paire de touches distincte pour l'authentification SSH, comme suggère la première réponse de Tim's Ultimate, est la bonne façon d'y aller. Cela peut être fait manuellement ou en utilisant le chef pour configurer le système avec les touches SSH appropriées.
Ce dont vous avez besoin sont des clés SSH.
Initialement, le serveur "Node1" (appelé ci-dessous) aura besoin d'un jeu de mots de passe pour votre utilisateur 'Centos' (appelé ci-dessous). Une fois que vous avez défini un mot de passe pour cet utilisateur, suivez les instructions ci-dessous.
Pour la configurer, connectez-vous sur le serveur client (le seul chef d'exécution) comme utilisateur du chef et exécutez
ssh-keygen -t rsa
Suivez les instructions (appuyez simplement sur Entrée lorsqu'il est demandé un mot de passe)
Puis exécutez la commande suivante
ssh-copy-id <targetuser>@<targetserver>
Suivez les instructions à l'écran et c'est tout ce qu'il y a.
Le chef devrait alors récupérer cette clé SSH automatiquement.
Edit :
Pour le chef hébergé, le processus est un peu différent. Dans Chef Gérer Aller à Administration> Utilisateurs> et sélectionnez votre nom d'utilisateur. Là-bas, vous devriez voir une clé publique.
Connectez-vous sur votre serveur cible comme utilisateur cible, puis vérifiez si vous avez le répertoire ~/.ssh
ls ~/.ssh
Si cela dit "LS: Impossible d'accéder à ~/.ssh: aucun fichier ou répertoire de ce type"
mkdir ~/.ssh
Ensuite, utilisez votre éditeur de fichier de ligne de commande de choix (i préféver Vim) Créez le fichier ~/.sSH/Authorize_Keys et copie de la clé publique que vous avez trouvée sur le chef hébergé dans ce fichier.
Edit : Si votre clé publique est au format Démarrer:
-----BEGIN PUBLIC KEY-----
Vous aurez d'abord besoin de convertir cela dans le format de clé publique SSH.
Pour ce faire, créez un fichier sur votre machine locale appelée PublicationKey.pem et copiez votre bus public. Puis ouvrez un terminal à cet endroit et exécutez:
ssh-keygen -f publickey.pem -i -m PKCS8
J'espère que cela t'aides. Tim.