¿Cómo me autentico cuando hago un clon git con Chef?

Soy nuevo en todo esto, pero supongo que usaré keys SSH … ¿pero cómo?

git '/home/vagrant/foo' do repository 'me@repo.domain.com:/usr/git/app.git' reference 'master' action :sync user "vagrant" group "vagrant" end 

Aquí lo que funcionó para mí:

1 – Generar un par de keys SSH (público + privado)

La key pública que agregará a su repository git

2 – Generar una key para el encryption

 openssl rand -base64 512 > encrypted_data_bag_secret 

3 – Crea una bolsa de datos encriptada con cuchillo

 $ knife data bag create private_keys git_key --secret-file encrypted_data_bag_secret 

Esto abrirá su editor favorito (vim), luego deberá agregar su key privada:

 { "name": "data_bag_item_private_keys_git_key", "json_class": "Chef::DataBagItem", "chef_type": "data_bag_item", "data_bag": "private_keys", "raw_data": { "id": "git_key", "private": "Add HERE you private key, replace the newlines by \n" <===== this is going to be a very long string of caracters } } 

IMPORTANTE: reemplace las líneas nuevas de su key privada por \ n

4 – En tu receta:

 secret = Chef::EncryptedDataBagItem.load_secret("/vagrant/encrypted_data_bag_secret") git_key = Chef::EncryptedDataBagItem.load( "private_keys", "git_key", secret) #git_key = Chef::DataBagItem.load( "private_keys_not_encrypted", "git_key") file "/home/otto/.ssh/id_rsa" do content git_key['private'] owner "otto" group "otto" mode 00600 action [:delete, :create] end 

5 – Mira dentro de tu bolsa de datos encriptados

 $ knife data bag show private_keys git_key id: git_key private: cipher: aes-256-cbc encrypted_data: osuRPsasdfasdfasdfasdfaKutAXYrklKwn+zAgtlQZsFZNRKCyDf1Lc 2jtRZeGye0WHEKbVCtO7+arpytY7jNA4prOsK6iF1+cJsKcIBDtiNuurt80V ljGJ5RNfvAtW5HJb2P7Sw75RyQQruKha0fsbyWTKwyssXnXZbmGxEFb+Vz4m vEiU0tVk7/M04zAw34beEfnmAKNAae4TAgrlYg8bdQcxBi6zIdj5AW1VGBsh xaxFdfEXvNcSwMBX9w3Yyj7xVzI7fj3QHqnJl/p4VKhwoOlCahbJqh3A72xc l0mg0aPYfASulVuLm6U+KywzonOOVqXpeNYPtz+bW5v6Wa4cIM3aJ0JcObDw BNqe0goDRHjz6YJBKW9RT5EiRJPZbdNWJaEZhEawW/e9lyLq/A44sZhC+m0I ... [FILTERED] ... 6RA/9XxH7pGJpJtxVYGWSQB1diHcpaT1Vg7RT48L7WZJjJcK0ZQHYZpXfIB2 jUfIM3VY3ceD12unbZPI6FifdFq74qlr0fF4WM6V7WhJTgx3V3xCYLkjnhD9 9mchWqaBa9oYNoflSR0vl21j2gywDG0LPI5bbgTU+Gu5A+XsGirW/FYfKS28 08+B64Qvep0axtocs3GN2hOb iv: dTFABrasdfasdfaLh5bNIJeUWQ== version: 1 

6 – Agregue su key pública a su nodo

 cookbook_file "/home/otto/.ssh/id_rsa.pub" do source "id_rsa.pub" <=== Contains the public key mode "0644" end cookbook_file "/home/otto/.ssh/known_hosts" do source "known_hosts" <=== BitBucket host mode "0644" end 

7 – Verifica que puedes conectarte a BitBucket

 $ ssh -T git@bitbucket.org The authenticity of host 'bitbucket.org ([FILTERED])' can't be established. RSA key fingerprint is [FILTERED]. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added 'bitbucket.org,[FILTERED]' (RSA) to the list of known hosts. authenticated via a deploy key. You can use git or hg to connect to Bitbucket. Shell access is disabled. 

IMPORTANTE: Al final de este command, tendrá el file known_hosts que debe agregar a su libro de cocina. Cópialo en files/default carpeta files/default de tu libro de cocina.

Después de esto, estaba a punto de git clone mi repository.

Creo que he documentado exactamente lo que hice, pero no dude en dejar sus preguntas.