Openssh en VM se autentica usando Pageant en el host

Openssh en VM se autentica usando Pageant en el host

Actualizar: Parece que el diseño de la red fue completamente incorrecto y el flujo de autenticación debería ser al revés. Entonces esta pregunta es discutible ahora.


Configuración actual: Linux VM (supongamos las más comunes y actualizadas como CentOS 7.1 y Ubuntu 15.04) en un host de Windows 7, usando Virtualbox.

TL;DR pregunta: ¿Es posible ejecutar openssh dentro de la VM parano¿Usar ssh-agent local para la autenticación de claves, pero usar Peagent en el host de Windows? Es aceptable una configuración más compleja.

pregunta larga: Originalmente, hay varias copias de claves en el host y la VM: las de formato Putty en el host y las de formato de clave openssh en las VM a través de una carpeta compartida, y muchas de ellas no están protegidas con contraseña para mayor comodidad. Pero últimamente siento la necesidad de consolidarlos y agregar más protección. Las claves son para administración remota y verificación de código fuente a través de sistemas de control de versiones, principalmente Git. Aquí están los requisitos:

  1. El host de Windows puede enviar ssh al servidor remoto y puede usar git a través de ssh.
  2. La máquina virtual Linux puede enviar ssh al servidor remoto y puede usar git a través de ssh.
  3. Las claves se almacenan únicamente en el host, no en las máquinas virtuales. (Lo que significa que esta no será una configuración de reenvío de agente ssh)

El punto 1 (permitir que el host de Windows utilice el concurso para la autenticación) es relativamente trivial; La configuración de git se reduce esencialmente a configurar $GIT_SSHla variable de entorno correcta. No solo Putty, incluso MinGW openssh puede conectarse al concurso, almacenando todas las claves dentro del administrador de contraseñas (usando KeePass 2.x) y exportando un socket adecuado para su uso como $SSH_AUTH_SOCKel uso deComplemento KeeAgent. Veresta publicación de ServerFaultpara otro enfoque.

Pero hasta ahora no hemos podido acceder al concurso a través de una máquina virtual Linux. He probado el siguiente enfoquepero falló:

  • El servidor SSH está instalado en el host de Windows como un salto intermedio (estoy intentandoMobasshpero la elección no debería importar: sigue leyendo).
  • Luego intente ejecutar de forma remota plink.exedesde VM. Esto es similar al enfoque ingenuo ssh host1 ssh host2, que está bastante bien para mi propósito.
  • Sin embargo, plink.exe no pudo acceder a ninguna clave cuando se ejecutó dentro del servidor SSH de Windows. Ejecutar plink.exe directamente en cmdlas obras. La mayoría de los servidores SSH disponibles que se ejecutan en Windows se basan en Cygwin. Se parece bastante a estoInforme de error combinado de PuTTY/Cygwin.

Nota:Una pregunta posiblemente similar aquí, pero no estoy usando Vagrant.

Respuesta1

Parece que el diseño original estaba completamente equivocado. Sería mucho más limpio activar el servidor sshd en cada máquina virtual con

AllowAgentForwarding yes

Y luego ingrese a cada VM por ssh. De esta manera, todas las máquinas virtuales utilizarían automáticamente el agente de autenticación del host sin necesidad de tener instalada ninguna clave ssh.

información relacionada