bash - run - ssh execute command on remote server
Especifique la clave privada en SSH como cadena (2)
Intenta lo siguiente:
echo $KEY | ssh -i /dev/stdin username@host command
La clave no aparece en una instrucción PS, pero debido a que la entrada estándar se redirige, solo es útil para comandos individuales o túneles.
Puedo conectarme a un servidor a través de SSH usando la opción -i para especificar la clave privada:
ssh -i ~/.ssh/id_dsa user@hostname
Estoy creando un script que toma el texto id_dsa
de la base de datos, pero no estoy seguro de cómo darle esa cadena a SSH. Necesitaría algo como:
ssh --option $STRING user@hostname
Donde $STRING
contiene el valor de id_dsa
. Necesito saber la --option
si hay una.
No hay tal interruptor, ya que podría filtrar información confidencial. Si lo hubiera, cualquiera podría obtener su clave privada haciendo un simple comando ps
.
EDITAR : (debido a los detalles agregados en el comentario)
Deberías guardar la clave en un archivo temporal. Asegúrese de configurar los permisos correctamente antes de escribir en el archivo, si no usa un comando como mktemp
para crear el archivo temporal.
Asegúrese de ejecutar el proceso de agente (o agente en caso de OpenSSH) y cargue la clave con <whatever command you use to fetch it form the database> | ssh-add -
<whatever command you use to fetch it form the database> | ssh-add -