Estoy tratando de seguir esta instrucción. Tengo un repositorio de git local y cuando hago un empuje de git, necesito que el repositorio se envíe a mi instancia EC2.
Pero, en el tutorial anterior, cuando hago un git push origin master
, obtengo un Permission denied (publickey)
error porque no especifiqué el archivo de identidad.
Diga, inicio sesión en EC2 así: ssh -i my_key.pem [email protected]
Entonces, ¿puedo hacer algo similar aquí a: git -i my_key.pem push origin master
o configurar el archivo de identidad en.git/config
Entonces, ¿cómo puedo configurarlo?
Actualización: Salida de git config -l
user.name=my name
[email protected]
github.user=userid
core.repositoryformatversion=0
core.filemode=true
core.bare=false
core.logallrefupdates=true
core.ignorecase=true
remote.origin.url=ec2_id@my_e2_ip_address:express_app
remote.origin.fetch=+refs/heads/*:refs/remotes/origin/*
Actualización (del comentario de @ Jon ):
Si tiene su clave en un camino extraño, simplemente ejecute ssh-add /private/key/path
. Esto funcionó para mí.
git
amazon-ec2
Zengr
fuente
fuente
ssh-add /private/key/path
¡trabajó!express_app
en tu configuración?Respuestas:
Para copiar su clave ssh local a Amazon, intente esto
reemplazando los nombres de la clave y amazon ec2 public dns, por supuesto.
entonces podrá configurar su control remoto en Amazon
fuente
Las instrucciones que se enumeran aquí me resultaron más útiles.
Desde el enlace:
Ajusta tu
~/.ssh/config
y agrega:Ahora use el alias de host ssh como su repositorio:
¡Y debería usar la
other_id_rsa
clave!fuente
git remote add ec2 ssh://[email protected]:zivot
. No sabía que uno pudiera prefijar direccionesssh://
antes de eso.En su máquina local, edite su ~ / .ssh / config y agregue:
Debería poder iniciar sesión en su instancia con "ssh example". Recuerde que su clave privada debe ser chmod 400. Una vez que pueda ingresar sin usar "ssh -i mykey.pem username @ host", haga lo siguiente.
En su instancia EC2, inicialice un repositorio simple, que se usa para enviar exclusivamente. La convención es agregar la extensión ".git" al nombre de la carpeta. Esto puede parecer diferente a su repositorio local que normalmente tiene una carpeta .git dentro de su carpeta "proyecto". Los repositorios desnudos (por definición) no tienen un árbol de trabajo adjunto, por lo que no puede agregarles archivos fácilmente como lo haría en un repositorio normal no desnudo. Así es como se hace. En su instancia ec2:
Ahora, de vuelta en su máquina local, use el alias de host ssh cuando configure su control remoto.
Ahora, debería poder hacer:
Ahora su código se envía al servidor sin problemas. Pero el problema en este punto es que su carpeta www en la instancia ec2 no contiene los "archivos de trabajo" reales que su servidor web necesita ejecutar. Por lo tanto, necesita configurar un script de "gancho" que se ejecutará cuando presione a ec2. Esta secuencia de comandos llenará la carpeta apropiada en su instancia ec2 con sus archivos de proyecto reales.
Entonces, en su instancia ec2, vaya a su directorio project_folder.git / hooks. Luego cree un archivo llamado "post-receive" y chmod 775 (debe ser ejecutable). Luego inserte este script bash:
Ahora, en su máquina local, haga un "git push ec2 master" y debería enviar el código a su repositorio básico, y luego el script de enlace posterior a la recepción revisará sus archivos en la carpeta apropiada que su servidor web está configurado para leer.
fuente
post-receive
archivo sea ejecutableDebe generar y cargar una clave SSH en la instancia EC2. Siga este tutorial: http://alestic.com/2010/10/ec2-ssh-keys
fuente
ssh-add /private/key/path
.Descubrí que esta era la forma más rápida: https://gist.github.com/matthewoden/b29353e266c554e04be8ea2058bcc2a0
Básicamente:
ssh-add /path/to/keypair.pem
(el "-add" debe estar JUSTO DESPUÉS del ssh)verifique si funcionó por:
ssh ubuntu@crazylongAWSIP
(tal vez su nombre de usuario no sea ubuntu)Después de eso, puede configurar un repositorio de git en su ec2 y presionarlo:
Sus opciones son configurar un repositorio de git 'desnudo' en su ec2 (lo que significa que otros repositorios de git pueden extraerlo y enviarlo, pero no contendrá ningún archivo), o puede configurar un repositorio NORMAL y presionar a él directamente (mi preferencia si desea introducir cambios locales en su ec2 sin tener que hacer ssh constantemente en su ec2).
Si desea configurar un repositorio NORMAL en el ec2, ingrese al ec2, haga lo
git init
que desee y luego haga esto:Ver: no se puede insertar en el repositorio de git para obtener una explicación de "recibir denegar la rama actual"
fuente
ssh-keygen
localmente~/.ssh/
, ahora debería ver un archivo de clave pública llamadoid_rsa.pub
: copie el contenido de este archivo en el/etc/ssh/authorized_keys
archivo, que se encuentra en su servidor remoto .Puede copiar y pegar el contenido, o cargar el archivo en su servidor remoto primero y usar el siguiente comando:
cat id_rsa.pub >> /etc/ssh/authorized_keys
fuente
No estoy publicando nada nuevo aquí, creo, pero tuve que buscar en las respuestas anteriores para abordar mi caso particular. Tengo una instancia de Ubuntu en EC2.
Para iniciar sesión en mi instancia, necesitaba hacer:
el archivo de claves "pemfile.pem" tenía que estar entre comillas.
Agregué el control remoto:
Pero cuando intenté empujar:
Tengo:
Para arreglar, hice:
Que me dio una respuesta,
Después de lo cual el empujón salió bien.
fuente
Me negaban el permiso cuando realizaba la implementación a través del control de fuente y no podía entender por qué. Me di cuenta de que mi usuario para el que estaba creando una clave ssh (llamado ubuntu, también el inicio de sesión recomendado para mi servidor ec2) no era el usuario responsable de cap deploy (root). Ejecutar un ssh-keygen para root y cargar esa clave ssh como clave de implementación en bitbucket resolvió mis problemas.
fuente
Sé que llegué demasiado tarde para esto, pero solo quería compartir este artículo que, en solo unos segundos, llegué con éxito al repositorio git de EC2.
http://shirtdev.wordpress.com/2011/05/04/setting-up-a-git-repository-on-an-amazon-ec2-instance/
fuente
Esta es la forma MÁS FÁCIL que funcionó muy bien para mí ... Tenía problemas para clonar un repositorio ... no reconocía la clave SSH que creé ... En lugar de cambiar su archivo de configuración y todo eso, simplemente copié el REAL ssh con la que estaba tratando de conectarse y agregué esto a bitbucket ... aquí está el comando:
Usé VI para abrir la clave REAL RSA y copié el contenido y lo pegué en bitbucket ... ¡Listo!
fuente
Para cualquier otra persona que pueda estar interesada, esta solución resultó ser la más limpia y fácil para mí:
http://eric.sau.pe/accessing-a-git-repository-using-a-key-pair/
fuente