GNU/Linux >> Tutoriales Linux >  >> Linux

agregar contraseña a .ssh/config

Solución 1:

No, no hay ningún método para especificar o proporcionar en la línea de comando la contraseña de una manera no interactiva para la autenticación ssh usando un mecanismo integrado de openssh. Al menos no uno que yo sepa. Puede codificar su contraseña en un script esperado, pero tampoco es una buena solución.

Definitivamente querría usar pares de claves para la autenticación sin contraseña, como dijo Michael, al final, la clave privada es prácticamente una contraseña grande en el archivo.

Solución 2:

Para evitar la serie de comentarios:Sí, esto es inseguro (ni siquiera podría decirse que es inseguro). Recomiendo enfáticamente que solo lo haga en una situación de laboratorio en una red aislada o en una situación similar que no involucre servidores de producción o potencialmente un servidor de producción sin un reinicio/formato completo.

Quería configurar esto porque no creo que mi conmutador 2950 admita claves privadas/públicas y espero obtener ese conocimiento en algún momento, pero aún no he llegado.

Esto se puede lograr usando un alias y sshpass.

  1. Instalar sshpass
  2. Modifique su .ssh/config archivo para incluir el nombre de usuario como se indica en la pregunta
  3. Agregue un alias a su terminal (utilicé .bashrc y recomendaría no configurar gloabl)
  4. Utilice un alias para iniciar sesión en el objetivo

Mi alias de ejemplo es:

alias ssc='sshpass -pcisco ssh'

Donde "cisco" es la contraseña. Tenga en cuenta que no hay espacio entre -p y la contraseña.

El uso es (haciendo referencia a la pregunta):

ssc server1

Nota:Esto responde a la pregunta del título solo para aquellos que usan motores de búsqueda. Si está utilizando servidores como el ejemplo de pregunta, se deben usar pares de claves privadas/públicas y no esta respuesta

Solución 3:

Sí, como se mencionó anteriormente, no hay forma de guardar la contraseña simplemente. Recomendaría usar la clave ssh para la autorización.

primero, genera tu clave:

ssh-keygen

Luego copie la clave en sus servidores/escritorios:

ssh-copy-id -i .ssh/id_rsa.pub [email protected]:

Eso es todo. Nunca más se le pedirá la contraseña.

También recomiendo eliminar la autorización de contraseña en general, pero eso depende de ti.

Solución 4:

No hay forma de hacer esto con ssh, es lo más inseguro posible.

Como mencionó Danila, podría usar secuencias de comandos esperadas, pero no me molestaría.

Me pregunto qué estás tratando de lograr. ¿Quieres saltar de un servidor a otro? En este caso, desea configurar y usar ssh-agent en su estación de trabajo y habilitar el reenvío de agentes en los hosts de destino; de esta manera, el intercambio de credenciales se enrutará a su agente local sin tener que copiar su clave privada.

Solución 5:

Uso este script de ~/.local/bin directorio

#!/usr/bin/bash

ORIG_SSH=/usr/bin/ssh
HOST=$1

SSHPASS=$(grep -Pzo "Host $HOST"'\s*\n((?!Host).*\n)*#PS\s(\N+)\n' ~/.ssh/config|tail -n 2|head -n 1 | sed 's/#PS //')
if [ -n $SSHPASS ]; then
    export SSHPASS
    sshpass -e $ORIG_SSH [email protected]
else
    $ORIG_SSH [email protected]
fi

Lo que me permite especificar la frase de contraseña como #PS <password> en .ssh/config archivo.

Pero, como dice todo el mundo, es mejor usar ssh-keys con ssh-agent cuando es posible


Linux
  1. Ssh – ¿Múltiples entradas similares en Ssh Config?

  2. ¿Cómo escribir la contraseña para varias ventanas?

  3. Comando sshpass:autenticación de contraseña no interactiva con SSH

  4. Rsync con SSH solicitando contraseña remota

  5. Ejecutando dos servidores SSH

Prueba de contraseña SSH con Hydra en Kali Linux

Cómo deshabilitar la autenticación de contraseña SSH en Linux VPS

Uso del archivo de configuración SSH

Cómo pasar la contraseña al comando SSH en Linux

SSH no pide contraseña, da permiso denegado inmediatamente

Reenviar SSH a través del túnel SSH