He estado tratando de ssh-add
trabajar en un RaspberryPi con Raspbian.
Puedo comenzar ssh-agent
, cuando lo hago da la siguiente salida en la terminal:
SSH_AUTH_SOCK=/tmp/ssh-06TcpPflMg58/agent.2806; export SSH_AUTH_SOCK;
SSH_AGENT_PID=2807; export SSH_AGENT_PID;
echo Agent pid 2807;
Si corro ps aux | grep ssh
puedo ver que se está ejecutando.
Luego trato de ejecutar ssh-add
para agregar mi contraseña clave y obtengo lo siguiente:
Could not open a connection to your authentication agent.
¿Algunas ideas?
command-line
ssh
ssh-agent
Daniel Groves
fuente
fuente
eval $(ssh-agent)
Respuestas:
Su shell está destinado a evaluar la salida de ese código de shell por
ssh-agent
. Ejecute esto en su lugar:O si ya ha comenzado ssh-agent, copie y péguelo en su indicador de shell (suponiendo que esté ejecutando un shell similar a Bourne).
ssh
los comandos necesitan saber cómo hablar conssh-agent
ellos, lo saben desde laSSH_AUTH_SOCK
variable de entorno.fuente
ssh-agent bash
hace), pero no puede actualizar la memoria de un proceso separado que ejecuta un comando externo (el shell que ya está ejecutando).Prueba este:
fuente
ssh-agent /usr/bin/fish
./usr/local/bin/fish
(alternativamente/usr/ports/shells/fish
). Gracias a lawhereis
orden por ayudarme a resolver eso.Esta pregunta también se ha cubierto muy bien en Stackoverflow .
fuente
`...`
. Sin ellos, el operador split + glob se invoca en la salida.Si usa csh como shell ( FreeBSD PI ) esto podría funcionar:
a continuación solo necesitas hacer algo como:
fuente
También puede usar la siguiente sintaxis:
fuente
ssh-agent sh -c "ssh-add -l"
, te dirá que no tienes identidades.ssh-agent sh -c "ssh-add && ssh-add -l"
imprimirá su identidad.Prueba esto: ve
C:\$Installation_Folder$\Git\cmd
y ejecuta:Se abrirá un comando cmd y se ejecutará de la
ssh-agent
manera correcta.ssh-add ~/.ssh/id_rsa
Entonces debería funcionar.fuente
Esto fue confuso y tiene 2 posibles buenas respuestas, dependiendo de si el usuario está intentando agregar una clave ssh en Linux o en Windows (como yo). Esto probablemente no responde al OP, pero es una expansión para git-bash. Ejecuto Windows y Ubuntu para el desarrollo, y mi instalación de git es ligeramente diferente en cada uno.
.. fue una buena respuesta de Windows, pero no especificó que se esperaba que pasaras por el Explorador de Windows para encontrar la carpeta de instalación de Git y ejecutaras el shell de Windows que se abriría al completar el paso 1.
"ve a C: \ $ Installation_Folder $ \ Git \ cmd "
Paso 2: solo necesitas hacer doble clic
En el paso 3, vuelve a git-bash o cualquier emulador de terminal * nix que esté ejecutando y ejecute ssh-add. Si usó el nombre predeterminado para la clave pública ssh, no tiene que agregar el nombre como ssh-add lo usa automáticamente.
fuente
Hay un par de formas si desea usar una identidad con sudo, por ejemplo
sudo npm install
.Largo camino , pero también te da acceso de root para que no necesites usar
sudo
mucho.sudo ssh-agent bash
Esto le pedirá su contraseña y luego se ejecutará
ssh-agent
con los privilegios del superusuario,cd /home/user/.ssh
Desde allí puedes correr
Camino corto , solo tu usuario (a menos que quieras sudo mucho)
fuente
export
yeval
funciona tan bien como root siempre que el shell de inicio de sesión de root sea como Bourne. Si la cáscara de la raíz es csh o tcsh, useeval `ssh-agent -c`
root
acceso a su agente ssh haciendosudo SSH_AUTH_SOCK="$SSH_AUTH_SOCK" npm install...
eval "$(ssh-agent)"
en el indicador de un shell bash ejecutándose como root funcionará. Obviamente, necesitará ejecutarssh
desde ese shell o su descendiente para que hereden el SSH_AUTH_SOCK env var.eval "$(sudo ssh-agent)"; sudo ssh...
no funcionará porquesudo
de forma predeterminada no pasa el SSH_AUTH_SOCK env var.eval "$(ssh-agent)"
mirar más tarde para ver si hay algún tipo de error de configuración. Aunque la forma actual que le he dado a esta guía permite un control libre sobre qué usuario desea ser desde que ya es root y puede acceder a cualquier usuario id_rsa que esté en el servidor. Entonces, una vez que lo haga funcionar, editaré mi respuesta.