Pregunta

¿Es posible tener un script Perl alias plazo de concha? Estoy corriendo en una situación en la que tenemos un módulo de Perl no tengo acceso a modificar y una de las cosas que hace es se registra en varios servidores a través de SSH para ejecutar algunos comandos de forma remota. Lamentablemente algunos de los sistemas (que yo también no tiene acceso a la modificación) dispone de un servidor con errores SSH que desconectará tan pronto como mi sistema intenta enviar una clave pública SSH. Tengo el agente SSH corriendo porque lo necesito para conectarse a otros servidores.

Mi solución inicial era crear un alias para configurar ssh ssh -o PubkeyAuthentication = no, pero Perl se ejecuta el binario ssh se encuentra en el PATH en lugar de tratar de utilizar el alias.

Parece que las únicas soluciones son desactivar el agente SSH mientras yo estoy conectando a los servidores problema o anular el módulo de Perl que hace la conexión real.

¿Fue útil?

Solución

alterar la trayectoria antes de ejecutar el script de perl, o utilizar esto en su .ssh / config

Host *
  PubkeyAuthentication no

Otros consejos

Tal vez usted podría poner un comando llamado ssh en PATH por delante de la ssh que corre ssh como quiere que se ejecute.

¿Por qué no se salta los alias y acaba de crear un script de shell llamado ssh en un directorio en algún lugar, a continuación, cambiar la ruta para poner ese directorio antes de la que contiene la ssh real?

he tenido que hacer esto recientemente con iostat debido a que la nueva versión de salida de un formato diferente que un producto de terceros no podía manejar (que escanea la salida para generar un informe).

He creado un script de shell iostat la que llama el iostat real (con la ruta codificada, pero podría ser más sofisticados), pasando la salida a través de una secuencia de comandos awk para dar masajes en el formato original. Entonces, he cambiado la ruta para el programa de terceros y comenzó a trabajar muy bien.

Se puede declarar una función en .bashrc (o .profile o lo que sea) con ese nombre. Se podría tener este aspecto (debe romper):

function ssh {
  /usr/bin/ssh -o PubkeyAuthentication=no "$@"
}

Pero el uso de un archivo de configuración podría ser la mejor solución en su caso.

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