shell – ¿Por qué evaluar la salida de ssh-agent?

Pregunta:

Para ejecutar ssh-agent tengo que usar:

eval $(ssh-agent)

¿Por qué es necesario eval la salida de ssh-agent ? ¿Por qué no puedo ejecutarlo?

Respuesta:

ssh-agent genera las variables de entorno que necesita para conectarse a él:

shadur@proteus:~$ ssh-agent
SSH_AUTH_SOCK=/tmp/ssh-492P67qzMeGA/agent.7948; export SSH_AUTH_SOCK;
SSH_AGENT_PID=7949; export SSH_AGENT_PID;
echo Agent pid 7949;
shadur@proteus:~$ 

Al llamar a eval , inmediatamente carga esas variables en su entorno.

En cuanto a por qué ssh-agent no puede hacer eso por sí mismo … Tenga en cuenta la palabra elección. No "no quiero", " no puedo ". En Unix, un proceso solo puede modificar sus propias variables de entorno y pasarlas a los niños. No puede modificar el entorno de su proceso padre porque el sistema no lo permite. Este es un diseño de seguridad bastante básico.

Puede sortear la eval utilizando la ssh-agent utility donde la utility es su shell de inicio de sesión, su administrador de ventanas o cualquier otra cosa que necesite tener configuradas las variables de entorno SSH. Esto también se menciona en el manual.

Leave a Comment

Your email address will not be published.

Scroll to Top

istanbul avukat

-

web tasarım