Estoy tratando de ejecutar git clonesin que ssh verifique la clave del host del repositorio. Puedo hacerlo desde ssh así:
ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no user@host
¿Hay alguna forma de pasar las mismas opciones ssh al comando git clone?
Editar: hay una restricción que no puedo modificar ~/.ssh/configni ningún otro archivo en esa máquina.

Respuestas:
Agréguelos a su
~/.ssh/config:La
Hostentrada es lo que especificará en la línea de comando yHostNamees el verdadero nombre de host. Pueden ser iguales o laHostentrada puede ser un alias. LaUserentrada se utiliza si no la especificauser@en la línea de comando.Si debe configurar esto en la línea de comando, configure la
GIT_SSHvariable de entorno para que apunte a un script con sus opciones en él.fuente
GIT_SSHvariable de entorno.El git 2.3 lanzado recientemente admite una nueva variable "GIT_SSH_COMMAND" que se puede usar para definir un comando CON parámetros.
fuente
git cloneo el código es correcto?Otra opción hecha para especificar diferentes claves es
git config core.sshCommandcon git 2.10 + (Q3 2016).Esta es una alternativa a la variable de entorno descrita en la respuesta de Boris )
Véase la confirmación 3c8ede3 (26 de junio de 2016) de Nguyễn Thái Ngọc Duy (
pclouds) .(Combinado por Junio C Hamano -
gitster- en el compromiso dc21164 , 19 de julio de 2016)Significa que
git clonepuede ser:Si desea aplicar eso para todos los repositorios , como agrega el usuario 1300959 en los comentarios , usaría una configuración global.
fuente
git clone; en este caso, es posible que desee configurar el comando git ssh de forma global:git config --global core.sshCommand ...Aquí hay un ejemplo complicado de cómo pasar los argumentos ssh utilizando la variable GIT_SSH:
Nota: Las líneas anteriores son líneas de comandos de terminal que debe pegar en su terminal. Creará un archivo ssh , lo hará ejecutable y lo ejecutará.
Si desea pasar la opción de clave privada, consulte ¿Cómo decirle a git qué clave privada usar? .
fuente
$*y"$@"parecen funcionar. Normalmente lo uso"$@", ya que el otro parece obsoleto. ¿Hay alguna razón para preferir$*en este caso?Configuración del nivel de repositorio sin afectar la configuración del nivel del sistema
Consolidando las respuestas ya disponibles, elijo los pasos a continuación. Esto asegura que los cambios de configuración no impacten a nivel de máquina, sino solo para el repositorio en el que se está trabajando. Esto es necesario en mi caso, ya que mi script debe ejecutarse en un agente Bamboo compartido.
1.Clone el repositorio adoptando el
GIT_SSH_COMMANDenfoque.2.Una vez clonado, navegue al directorio del repositorio.
3.Establezca la
core.sshCommandconfiguración para que todas las llamadas futuras se puedan ejecutar con los comandos git como de costumbre, pero consumiendo internamente las opciones de git proporcionadas.fuente
core.sshCommandque mencioné anteriormente. Voto a favor.Creo que actualizar git a una versión> = 2.3 y usar
GIT_SSH_COMMAND="ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no" git clone user@hostes la opción de apuesta, pero si no es posible, @ josh-lee dio una buena opción, pero por favor, actualice su respuesta sangrando el archivo de configuración ssh.fuente
Este problema se ha solucionado siguiendo los pasos en la máquina de Windows: -
Cree un archivo de configuración en la carpeta C: \ Users \ username.ssh.
agregue la siguiente línea a un archivo de configuración.
vuelva a intentarlo.
fuente