1 votos

Cambiar los nombres de host remoto almacenados en la aplicación de terminal en masa

He estado utilizando el nombre de host simple para ssh en hosts remotos, alrededor de 100 sistemas. Ha habido un cambio en la configuración de la red que requerirá FQDNs.

En lugar de recrear todos los nombres de mis sistemas remotos (almacenados en el terminal y mostrados al pulsar shift-command-k )

¿Puedo editar los datos almacenados para añadir la información del dominio a las entradas existentes?

1 votos

Creo que tienes que ejecutar una vez más como cuando se agrega FQDN , se creará una nueva huella digital de clave RSA.

1 votos

@Udhy - esa no es la pregunta que se hace. Los nombres de host guardados se encuentran cuando se pulsa Shift-Cmd-K . Es como una libreta de direcciones de hosts y no tiene nada que ver con la huella digital.

0 votos

A los editores no les gustó que añadiera la solución correcta directamente en la pregunta. Aunque la solución que encontré y que funcionó está basada en una respuesta a esta pregunta, es sutilmente diferente, lo que no es obvio a menos que se intente hacer el trabajo.

2voto

Douglas Puntos 10417

Los nombres de host se almacenan en la configuración de la Terminal .plist en los usuarios /Library/Preferences carpeta:

~/Library/Preferences/com.apple.Terminal.plist

Editar el .plist

La forma más fácil de editar un lote de estos es editando el plist con una herramienta como VSCode (gratis) con el Extensión Plist binaria o su editor de texto favorito con soporte para plist. 1 También puede convertir el plist a XML (y de nuevo a binario) utilizando plutil . 2 Esto le permitirá utilizar cualquier editor de texto como TextEdit que no soporta nativamente los formatos plist.

Importante: Te sugiero que hagas una copia de seguridad del plist antes de empezar a editarlo por si quieres volver al original.

Puede encontrar todos sus servidores en la matriz bajo el Servidores permanentes como se muestra a continuación. Simplemente entre y corrija el FDQN según sea necesario. Si los sufijos del dominio son todos iguales, un simple Buscar/Reemplazar debería acelerar la tarea.

com.apple.Terminal.plist PermanentServer key

Guarde el archivo y vuelva a cargar el Terminal. Para este ejemplo, he añadido el FQDN .newFQDN a cada entrada y reiniciar el Terminal. Este es el resultado:

New Remote Connection Updated Results

Método alternativo utilizando defaults read/write

Puede obtener los nombres del servidor con la función defaults read comando:

$ defaults read -app Terminal PermanentServers

(
    "host1.FQDN",
    "host2.FQDN",
    "host3.FQDN",
    "host4.FQDN"
)

Puedes configurar tus nuevos servidores sobrescribiendo esa matriz con una nueva de la siguiente manera:

$ defaults write -app Terminal PermanentServers -array '(host1.newFQDN, host2.newFQDN, host3.newFQDN, host4.newFQDN)'

A continuación, puede volver a emitir el defaults read para comprobar los resultados. La ventaja de esto es que no necesitas TextWrangler y puedes scribirlo. Sin embargo, es difícil hacer un número grande en la línea de comandos por lo que, querrás editarlo primero en un editor de texto para asegurarte de que no tienes errores.


1 En la primera versión de esta respuesta, me refería originalmente a TextWrangler ya que fue una herramienta que utilicé originalmente para ver/editar archivos plist. Sin embargo, he estado haciendo la transición a VSCode ya que es multiplataforma - MacOS, Windows, e incluso FreeBSD, descubrí un plugin plist que me permitió finalmente deshacerme de TextWrangler, no es que sea "malo" de ninguna manera; sólo estoy tratando de racionalizar mis herramientas de desarrollo.

2 Para convertir un plist binario en XML para su edición, ejecute el comando plutil -convert xml1 foobar.plist . Una vez que haya terminado de editarlo, guárdelo y vuélvalo a convertir en binario con el comando plutil -convert binary1 foobar.plist


0 votos

FYI - TextWrangler ya no está soportado, y es de 32 bits por lo que no funcionará en Catalina, pero puedes usar la versión gratuita de BBEdit para abrir .plist sin tener que convertirlos primero en texto. Es de la misma compañía que hizo TextWrangler y hace más de lo que TextWrangler solía hacer.

0 votos

@TJLuoma - es bueno saberlo. Todavía no me he pasado a Catalina por este tema de los 32 bits. He repasado el código de VS y creo que me quedo con él.

1voto

moodforaday Puntos 2633

Si lo único que te preocupa es poder ssh en, es posible que no tengas que cambiar en absoluto la forma de conectarte.

Se pueden crear alias en ~/.ssh/config que se refieren a otros hosts. Por ejemplo, si quieres poder hacer ssh shortie en lugar de ssh somehostname.plus.fqdn se usaría esto en ~/.ssh/config :

Host shortie
    HostName somehostname.plus.fqdn
    HostKeyAlias somehostname.plus.fqdn

El HostKeyAlias le dice a ssh qué nombre de host utilizar en ~/.ssh/known_hosts para verificar esta conexión, por lo que es posible que desee utilizar el FQDN para ello.

Yo probaría eso con uno de tus anfitriones y vería si te funciona. Si lo hace, editar ~/.ssh/config es sin duda la solución más fácil, y puedes copiarla en otros ordenadores si quieres/necesitas.

También puedes asignar varios alias.

Lo bueno de hacer esto como el ssh nivel es que funcionará para Terminal.app, iTerm, y cualquier otra herramienta que utilice ssh.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X