Pregunta

El dilema: un programa de Linux que estoy trabajando en que:

  1. Fetch un "paquete" sobre git + ssh:. // protocolo (utilizando Git)
  2. Instalar que "paquete" en el sistema.

Para git + ssh al trabajo, Git tiene que ver mis llaves.

Para la instalación "paquete", el programa debe tener privilegios de superusuario.

Una limitación: El programa debe privilegios no eleva (sudo llamada) por sí mismo. El usuario debe invocar explícitamente con sudo. (Vamos a ignorar el caso cuando el usuario ejecuta el programa, mientras que comienzan conectado como root -. Asumiendo que lo hará claves de configuración correctamente, entonces)

Entonces, la pregunta es: ¿cómo hacer el acceso SSH con claves de usuario del programa que se invoca con sudo

¿Fue útil?

Solución

utilizar los parámetros identity_file ssh -i. A decir git utilizar el comando adecuado que debe establecer la variable de GIT_SSH a un archivo que se llame ssh -i "$ @".

Si no puede hacerlo, entonces usted debe caer privilegios mientras haces el comando git pull.

sudo -u <original_user> git fetch git+ssh:// 

Se puede utilizar la variable $ {} SUDO_USER ambiente para averiguar quién es el usuario original.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top