GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo configurar un perfil de pestaña en Windows Terminal para SSH automáticamente en una caja de Linux

Por ahora espero que haya instalado Windows Terminal. Si no, ve a hacer eso, esperaré. Es hora.

También puede personalizar su configuración. Si probó la terminal hace algunas versiones y no ha vuelto a ingresar, también es hora de dejar que la Terminal de Windows le genere un nuevo y agradable profiles.json (archivo de configuración). Está bien poner a cero/eliminar el tuyo. Windows Terminal lo regenerará la próxima vez que se inicie.

Tengo varias cosas en el menú desplegable de mi Terminal. Se parece a esto.

Sin embargo, me gustaría poder tener un perfil que ssh en las máquinas Linux que uso regularmente. ¿Quizás esas máquinas remotas pueden tener su propio elemento de menú genial? Veamos cómo se vería y cómo lo haríamos.

Agregar un nuevo perfil a la terminal de Windows

Haga clic en la flecha hacia abajo en la barra de pestañas superior de Windows Terminal. Tenga en cuenta que hay un montón de configuraciones excelentes y útiles, así que explore el esquema de configuración y, cuando esté editando la configuración, asegúrese de que Visual Studio Code esté configurado como su controlador predeterminado para archivos .json. Eso es importante porque la configuración de Windows Terminal profile.json incluye un esquema JSON y querrá que su configuración tenga autocompletar/intellisense. Esto hará que sea más fácil crear y descubrir nuevas configuraciones.

Agregaré un perfil a la matriz de "perfiles". Para empezar y aprender, ¡agreguemos el perfil más simple posible! Solo estoy agregando { } como un elemento de matriz en los perfiles más grandes [] y dándole un nombre.

"profiles": [
{
"name": "This is a name"
},

Esto creará un nuevo elemento de menú en Windows Terminal con el mismo nombre. No tendrá ícono y lanzará cmd.exe como el shell predeterminado porque no configuré ninguna otra línea de comando. Si lo agrego en la parte superior (como el primer) elemento en la matriz de perfiles, también aparecerá primero en el menú y tendrá la tecla de acceso directo Ctrl+Shift+1.

Esto es patético, así que agreguemos más. Agregaré un tabTitle y un commandline .

    {
"name": "This is a name",
"tabTitle": "This is a tab title",
"commandline": "powershell"
},

Este elemento del menú aparecerá como "Este es un nombre" en el menú, pero la pestaña se llamará "Este es un título de pestaña". Lanzará PowerShell. Tenga en cuenta que no incluí .exe aunque podría haberlo hecho. Quería asegurarme de que tenga claro que Windows Terminal se llama básicamente Process.Start para que pueda configurar una pestaña de perfil para llamar a cualquier cosa en la RUTA, o puede ser explícito. También podría agregar "startingDirectory " y un montón de otras opciones.

Dado que puedo llamar a cualquier cosa en la RUTA, ¿qué más puedo hacer?

Uso de OpenSSH en Windows

Es posible que no lo haya escuchado, pero OpenSSH se ha incluido en Windows desde hace algunos años. Eso significa que muchas de las utilidades para las que podría haber instalado Putty ya están disponibles en Windows. Puede abrir un PowerShell de administrador y ejecutar un comando para asegurarse de que las aplicaciones cliente de OpenSSH estén allí:

Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0

Esto instala el cliente, pero también hay un servidor opcional si lo desea.

Me voy a centrar sólo en el cliente. Pase a la siguiente área si desea realizar su SSH desde Linux, no desde Windows.

Esto es lo que está instalado en c:\windows\System32\OpenSSH

Aquí tenemos sftp, scp y, lo que es más importante, ssh.exe y ssh-agent. Dado que ssh está en la RUTA cuando se instala con Windows, puedo cambiar mi perfil de Terminal de Windows para que se vea así e iniciar sesión en mi Raspberry Pi 4.

{
"name": "ssh hanselPi4",
"tabTitle": "HanselPi4",
"commandline": "ssh pi@hanselpi4"
},

Tenga en cuenta que en esta captura de pantalla tengo la conexión ssh en la parte superior, y cuando hago clic en ella, se abre ssh.exe y me solicita una contraseña. No tengo claves ssh en mi sistema que permitan el inicio de sesión automático, por lo tanto, se necesita la contraseña.

Entrar/iniciar sesión mediante SSH automáticamente en una máquina Linux desde un perfil de terminal de Windows

Ahora bien, esto es importante, así que presta atención. Si ya tiene WSL o WSL en su máquina, ciertamente puede usar las claves SSH y las utilidades que se incluyen en su distribución de Linux preferida.

En ese caso, su línea de comando en su perfil de Terminal de Windows sería algo como:

wsl ssh pi@hanselpi4

o si desea una distribución específica, puede iniciar una distribución y ssh desde allí.

wsl -d Ubuntu-18.04 ssh pi@hanselpi4

Si conoce Linux, entonces está familiarizado con la configuración de sus claves públicas para permitir esto. Sin embargo, la mayoría de la gente piensa que necesita Putty o alguna herramienta de terceros para hacer esto en Windows, así que me centraré en cómo hacerlo aquí.

Quiero poder escribir "ssh pi@hanselpi4" desde mi máquina con Windows e iniciar sesión automáticamente. Más específicamente, quiero hacer clic en el perfil y hacer que funcione.

lo haré

  • Hacer una clave en mi máquina Windows. La máquina FROM, en este caso, Windows. Entonces quiero hacer ssh DESDE aquí HASTA la máquina Linux remota.
  • Infórmele a la máquina Linux (mediante la transferencia) sobre la parte pública de mi clave y agréguela a las claves_permitidas de un usuario específico.

Ejecutaré ssh-keygen para crear una clave desde mi línea de comandos en Windows. Solo presiono enter para generarlo, pero puede crear su propio nombre de archivo si lo desea, solo use la ruta completa y asegúrese de realizar un seguimiento de dónde están las cosas. Los valores predeterminados suelen ser los mejores.

>ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (C:\Users\scott/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in hanselpi4.
Your public key has been saved in hanselpi4.pub.

Recuerde que la ruta es c:\users\yourname porque ese es el equivalente de Windows de la carpeta de inicio ~ y las claves están en c:\users\yourname\.ssh.

Ahora quiero transferir lo que hay en id_rsa.pub a mi Raspberry Pi. Puede scp (copia segura) si lo desea, pero es mejor añadir la clave al archivo authorized_keys en la máquina de destino.

NOTA:Estoy escribiendo (cat en Linux es tipo en Windows) ese archivo de texto y canalizándolo a SSH donde inicio sesión en esa máquina remota con el usuario pi y luego cat (en el lado de Linux ahora) y agrego>> ese texto a la carpeta .ssh/authorized_keys. La carpeta ~ está implícita, pero se puede agregar si lo desea.

Ejecute este comando una vez en Windows para generar su clave y canalizarla y agregarla al archivo correcto en su máquina Linux remota. Se le pedirá su contraseña una vez.

type c:\users\scott\.ssh\id_rsa.pub | ssh pi@hanselpi4 'cat >> .ssh/authorized_keys'

Asegúrate de entender lo que está pasando en la línea de arriba.

Agregar un ícono de perfil:la frambuesa en la parte superior

En este punto, puedo hacer clic en el elemento del menú en la Terminal de Windows y automáticamente iniciar sesión en la terminal remota. Pero, escandalosamente, el elemento del menú Terminal no tiene ícono. Esto es claramente inaceptable, M$sft apesta, ¿verdad? Iré a buscar un buen icono de Raspberry Pi de 32x32 y lo pondré en alguna parte. Puede poner el suyo en Dropbox o OneDrive para que estén disponibles dondequiera que vaya.

Ahora mi perfil se ve así:

"profiles": [
{
"name": "ssh hanselPi4",
"tabTitle": "HanselPi4",
"commandline": "ssh pi@hanselpi4",
"icon": "c:/users/scott/downloads/icons8-raspberry-pi-32.png"
},

¿Qué tan hermoso es esto?

Se ve bien, tiene un buen título e ícono, y puedo usar una tecla de acceso rápido para ingresar automáticamente mediante SSH a mi máquina remota.

Una nota final, ya tiene Azure Cloud Shell en la Terminal de Windows (puede acceder allí de forma gratuita en http://shell.azure.com en su navegador y acceder a un contenedor de Linux gratuito en cualquier lugar y en cualquier momento con una unidad de nube persistente ), pero ahora puede seguir las instrucciones de esta publicación y configurar SSH con un solo clic en cualquier lugar.

¡Espero que esto sea útil!

Patrocinador: El patrocinador de esta semana soy... ¡yo! Este blog y mi podcast han sido un trabajo de amor por más de 18 años. Su patrocinio paga mis facturas de alojamiento para ambos Y me permite comprar dispositivos para revisar Y el taco ocasional. ¡Únete a mí!


Linux
  1. Cómo configurar un banner de advertencia de SSH personalizado o MOTD en Linux

  2. Cómo establecer la configuración de proxy en la línea de comandos o terminal de Linux

  3. Cómo SCP desde un servidor Linux a un cliente Windows

  4. ¿Cómo comparto internet con Windows desde mi caja Linux?

  5. ¿Cómo hacer un túnel de Windows Remote Desktop a través de ssh usando una caja de Linux?

Cómo SSH en su servidor Linux desde Windows

¿Cómo me conecto a Linux VPS a través de SSH desde Linux y Windows OS?

Cómo SSH en WSL2 en Windows 10 desde una máquina externa

Cómo SSH en una máquina con Windows 10 desde Linux O Windows O en cualquier lugar

Cómo usar SSH para conectarse a un servidor remoto en Linux o Windows

¿Cómo monto una carpeta remota de Linux en Windows a través de SSH?