Generé mi clave ssh en mi máquina local.
Luego utilicé el siguiente comando para copiar mi clave pública en mi servidor:
ssh-copy-id username@remote_host
. Todo salió bien.He confirmado que mi máquina local
~/.ssh/id_rsa.pub
se ha copiado en mi servidor enmy_user's_home_directory/.ssh/authorized_keys
. No hay otros archivos allí.También copié esa misma clave pública en Gitlab.
Cuando intento realizar
git clone
un repositorio en el servidor, me dicen:
[email protected]: Permission denied (publickey,keyboard-interactive).
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
- Puedo ingresar mediante ssh con bastante facilidad a mi servidor. Pero como mi servidor no contiene mi clave privada, para mí tiene sentido que no pueda clonar ssh git. ¿Cuál es el procedimiento normal aquí? Puedo realizar una descarga https normal, ¿es esa la ruta estándar?
Respuesta1
Puede utilizar ssh -A
para reenviar su agente ssh al host remoto que utilizará sus claves locales desde el servidor remoto sin enviar las claves.
Si bien esto parece una opción segura, hazlo solosi confías absolutamente en el servidor remoto(es decir, no habilite esto de forma predeterminada). El agente ssh reenviado puede ser utilizado por cualquier persona con el mismo usuario remoto que el suyo o con privilegios de root.
Si decide seguir ese camino, le recomiendo agregar claves al agente ssh-add -c
para que se le solicite confirmación cuando se use una clave.
Respuesta2
git está descentralizado. Podría buscar desde Gitlab a su PC y luego enviarlo desde su PC al servidor. El cliente ssh es su PC para ambos, por lo que su clave privada o agente reenviado no toca el servidor.
O podría tener varias claves ssh. Uno personal para tu PC, y otro diferente para el servidor. Más claves para administrar, pero es posible monitorear y controlar por separado, estilo cuenta de servicio.
O no utilice git como herramienta de implementación. Genere un paquete o algún otro archivo e instálelo como lo hace con otro software.