A menudo me encuentro abriendo una sesión SSH para ejecutar el mismo comando único. Tengo todo configurado para iniciar sesión sin ingresar una contraseña (a través de SSH Key-Based Auth), por lo que me pregunté si había una manera de crear un acceso directo o un archivo por lotes en Windows que cargara PuTTY o un programa similar, luego disparó eso comando (y probablemente salga si el resultado es bueno).
10

-minterruptor con Plink, ya que permite especificar el comando directamente en su línea de comando, vea mi respuesta .-ssh host1que se relaciona con Putty Profile vsuser@hostplink site commandlo mismo que con PuTTY (excepto paracommand). Plink and PuTTY tiene básicamente el mismo conjunto de opciones de línea de comandos.Para automatizar la ejecución de un comando, use Plink (del paquete PuTTY) , no PuTTY en sí.
Plink acepta un comando en su línea de comando:
Si desea seguir usando PuTTY, puede usar el
-minterruptor para especificar un archivo de comando (Plink también admite el-minterruptor).fuente
-i keyo-pw passwordplink site commandlo mismo que con PuTTY (excepto paracommand). Plink and PuTTY tiene básicamente el mismo conjunto de opciones de línea de comandos.Puede usar configuraciones de masilla para lograr esto.
Cargue masilla y configure su sesión.
Ingrese el comando remoto que desea ejecutar aquí:
Luego, antes de hacer clic en " Abrir ", regrese a la pestaña " Sesión " (en la parte superior) y guarde su configuración.
Ahora, cree un acceso directo a
putty.exe, agregando la-loadbandera, por ejemplo:Ahora, puede hacer clic en el acceso directo y cargará su sesión, ejecutando su comando.
fuente
Si usa Windows 10, es posible que le interese saber que, según los informes, Microsoft tiene una versión beta de OpenSSH (cliente y servidor ):
Si esto funciona, debería poder usar
sshcomo lo haría en un * Nix:fuente
Solo pensé en insertar el guión que hice para, con suerte, ahorrarle a algunas personas horas de sintaxis e investigación de la página de manual
Este lote asume:
https://www.harmonyhit.com/PuttyBatch.bat
Esto es principalmente útil para tener un solo script (como actualizar un certificado SSL) en una variedad de máquinas
Aquí está el archivo por lotes completo:
@ECHO OFF rem Debe modificar la sección CACHEKEY y SCRIPT para reflejar la ubicación de su clave SSH establecer IPFILE = IPList_temp.txt establecer runagain = n establecer OPCIÓN = 1 establecer RANGE = establecer IP = establecer SCAN = n establecer KEYCACHE = n :OPCIÓN CLS ECHO (el directorio de trabajo está configurado en C: \ Archivos de programa \ PuTTY \ scripts \) ECO. ECHO 1. IP única ECHO 2. Archivo de lista de IP ECHO 3. Rango de IP ECO. set / p OPTION = "Elija el tipo de IP:" SI% OPCIÓN% == 3 GOTO IPRANGE IF% OPTION% == 2 GOTO IPLIST IF% OPTION% == 1 GOTO SINGLEIP echo Seleccione una opción válida OPCIÓN GOTO : IPRANGE ECHO Ingrese los rangos de IP como en el siguiente ejemplo. Use un espacio entre múltiples rangos: ECHO, es decir, "10.21.0.15-99 10.21.1.15-100" set / p RANGE = Ingrese el rango: echo% RANGE%>% IPFILE% GOTO SCRIPTNAME : SINGLEIP set / p IP = Ingrese IP: echo% IP%>% IPFILE% GOTO SCRIPTNAME : IPLIST set / p IP = Ingrese el nombre del archivo IPList: copiar / Y% IP%% IPFILE% GOTO SCRIPTNAME : SCRIPTNAME set / p SCRIPT = Ingrese el nombre del script: si no existe% SCRIPT% ( echo nombre de archivo no existe! GOTO SCRIPTNAME) ECO. set / p SCAN = ¿Escanea Nmap primero? (recomendado): if% SCAN% == n GOTO: RUNCACHE rem Compruebe si el tipo de IP es "rango" ya que nmap no puede leer un rango de IP del archivo y debe escribirse directamente en el comando nmap IF% OPTION% == 3 GOTO NMAPRANGE : NMAP echo Escaneo de IP para el puerto 22 abierto ... nmap --open -n -p22 -iL% IPFILE% -oG - | Findstr / E Up> nmap_temp.txt GOTO AFTERNMAP : NMAPRANGE echo Escaneo de IP para el puerto 22 abierto ... nmap --open -n -p22% RANGE% -oG - | Findstr / E Up> nmap_temp.txt : AFTERNMAP echo HECHO El formato rem nmap no es correcto, lo siguiente elimina información adicional para / f "tokens = 2" %% A en (nmap_temp.txt) do echo %% A >> nmap_temp2.txt rem elimina el espacio oculto al final de la IP (requiere que "repl" esté en el directorio de archivos por lotes) escriba "nmap_temp2.txt" | repl "" "">% IPFILE% : RUNCACHE set / p KEYCACHE = Escanear y almacenar en caché la clave SSH (y / n)? if% KEYCACHE% == n GOTO SCRIPT : CACHEKEY rem Ejecutar a través de todas las IP para almacenar en caché la clave de host SSH si aún no está en caché para / F "tokens = *" %% A en (% IPFILE%) do (echo y | "C: \ Program Files \ PuTTY \ pscp.exe" -l root -i "C: \ Program Files \ PuTTY \ SSH .ppk "-touch %% A: / tmp / test) :GUIÓN para / F "tokens = 1" %% A en (% IPFILE%) do ("C: \ Archivos de programa \ PuTTY \ putty.exe" -ssh %% A -t -l root -i "C: \ Archivos de programa \ PuTTY \ SSH.ppk "-m" C: \ Archivos de programa \ PuTTY \ scripts \% SCRIPT% ") si existe nmap_temp.txt (del nmap_temp.txt) si existe nmap_temp2.txt (del nmap_temp2.txt) set / p runagain = "Presione Enter para finalizar o y para volver a ejecutar" if% runagain% == y GOTO OPTIONfuente
SSH.ppky la) tocarpeta de archivos de programa del script.)También puede buscar software como mRemoteNG, MOBAxTerm o SecureCRT que administrará sus conexiones SSH por usted, esto también se vincula con las sesiones PuTTY guardadas para que pueda aplicar una plantilla a la sesión.
fuente
Este es el "CMD" final que puedo guardar en mi FileServer y crear un acceso directo en mi escritorio.
fuente