Saltar al contenido

¿Existe un equivalente a ssh-copy-id para Windows?

Este grupo de redactores ha pasado mucho tiempo investigando para dar resolución a tus interrogantes, te ofrecemos la respuestas por eso nuestro objetivo es resultarte de gran ayuda.

Solución:

Solución 1:

ssh-copy-id es un script bastante simple que debería ser bastante fácil de replicar en Windows.

Si ignora todo el manejo de parámetros, manejo de errores, etc., estos son los dos comandos de ssh-copy-id que realmente están haciendo el trabajo la mayor parte del tiempo.

GET_ID="cat $ID_FILE"
 eval "$GET_ID" ;  | ssh $1%: "umask 077; test -d .ssh || mkdir .ssh ; cat >> .ssh/authorized_keys" || exit 1

Usando las herramientas de masilla, un comando como este debería ser equivalente (no probado).

type  public_id | plink.exe [email protected] "umask 077; test -d .ssh || mkdir .ssh ; cat >> .ssh/authorized_keys"

Si desea hacer todo el mismo manejo de errores, y el key ubicación, estoy seguro de que escribir un script en Windows será mucho más complicado, pero ciertamente posible.

Solucion 2:

Estas respuestas no me ayudaron. Realmente no necesitaba ningún guión loco. Yo había creado un público key en mi máquina cliente en git bash y estaba tratando de copiarlo a un VPS.

Después de crear tu público key, los key debe almacenarse como “(cualquier carpeta en la que haya comenzado) /. ssh / id_rsa.pub”

Entonces usa este comando:
cat ~/.ssh/id_rsa.pub | ssh [email protected] "cat >> ~/.ssh/authorized_keys" dónde user es su nombre de usuario (a veces “root” o lo que sea que haya configurado), y reemplace 123.45.67.89 con la dirección IP de su máquina / host / VPS.

Si el directorio .ssh aún no se ha creado en la máquina host, utilice esta pequeña variación:
cat ~/.ssh/id_rsa.pub | ssh [email protected] "mkdir ~/.ssh; cat >> ~/.ssh/authorized_keys"


Solución 3:

ssh-copy-id hace un par de cosas (lea la página de manual para obtener más detalles), pero lo más importante que hace es agregar el contenido de su público local key archivo a un archivo remoto llamado claves_autorizadas.

  • Puede hacerlo usted mismo abriendo el key archivo con un editor de texto y pegar el contenido en la terminal de Kitty.
    echo 'long_line_with_contents_of_public_key_file' >> .ssh/authorized_keys

  • Alternativamente, puede cargar el archivo usando WinSCP (que usa sftp o scp como respaldo) y hacer algo similar a mi sugerencia anterior, sin la fea copia / pegado.
    cat id_rsa.pub >> .ssh/authorized_keys

    donde id_rsa.pub es el nombre de archivo del público key subiste.


Solución 4:

Inspirado por la respuesta de zoredache, he creado un montón de scripts que son la versión de Windows. Sin embargo, todos dependen del plink. Por favor, eche un vistazo aquí.

https://github.com/VijayS1/Scripts/blob/master/ssh-copy-id/

También tengo un script de winscp que se puede usar según otra respuesta. 🙂 Extracto del archivo Léame:

Métodos intentados hasta ahora:

  • DOS (.cmd) – Correcto
  • VBS (.vbs): éxito
  • Powershell (.ps1) – Éxito
  • mremoteNG (aplicación ext) – Éxito
    • Seleccione Host, haga clic con el botón derecho, herramientas externas, seleccione Scriptname
  • Secuencia de comandos WinSCP (.bat): éxito
    • # "WinSCP.com" /script=".Scriptname" /parameter "user[:password]@example.com" "id_rsa.pub" [/log=".copyssh.log]"

Solución 5:

En Windows 7 hay un ssh.exe

Esto es lo que funcionó para mí:

1. crear identidad (en Windows)

c:>ssh-keygen

Eso creó un archivo de identidad en el directorio de inicio. Cambié el nombre del público key a “id_rsa”

2. copie el archivo al sistema linux de destino usando el ssh
Créditos a https://serverfault.com/users/984/zoredache por su respuesta

c:>ssh [email protected] "umask 077; test -d .ssh || mkdir .ssh ; cat >> .ssh/authorized_keys || exit 1" < \path_to_where_the_file_was_generated_from_ssh_key_genid_rsa.pub

Nota: Por alguna razón, la tubería no me funcionó:

# this should work but it didn't work for me 
type file | ssh [email protected] "cat >> /tmp/t.txt"

3. Corrija el archivo en linux
El archivo id_rsa.pub en Windows es multilínea, donde Linux lo espera en una sola línea, por lo que tenemos que corregirlo un poco. Inicie sesión en Linux y abra el archivo:

vi ~/.ssh/authorized_keys

Por ejemplo:

---- BEGIN SSH2 PUBLIC KEY ----
Comment: "2048-bit RSA, [email protected]"
AAAAB3NzaC1yc2EAAAABIwAAAQEAnvYlVooXGoj3+7huZBUqf4wj57r25SHCKiiShyla33
5flX7Rsmb4meExpdh2NzfzffG15xl1wo0xBZ3HdZdqF2GUniEcNbtVjS1FKzQwPfsYPHMC
Y58qT0U2ZgK1zsXj2o0D2RWrCv3DFFfwUgNyZRYN2HK32umY6OmGSOVuJvIKhT+X6YaCVy
ax3CHv2ByB2OTBl9mh4nrwYAVXToT+X2psBE+MKB5R85lrUGkl3GtymTk10Dvf5O80exdT
LFRMvkCA5RAIZgvxMk/bbNaH/0UHQoctX9oaDeKGWUPfVaknFBQdU9009+lK/ocAlKVNHE
Qkw+1wuV6dFoT1/hngSw==
---- END SSH2 PUBLIC KEY ----

debe convertirse

ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAnvYlVooXGoj3+7huZBUqf4wj57r25SHCKiiShyla335flX7Rsmb4meExpdh2NzfzffG15xl1wo0xBZ3HdZdqF2GUniEcNbtVjS1FKzQwPfsYPHMCY58qT0U2ZgK1zsXj2o0D2RWrCv3DFFfwUgNyZRYN2HK32umY6OmGSOVuJvIKhT+X6YaCVyax3CHv2ByB2OTBl9mh4nrwYAVXToT+X2psBE+MKB5R85lrUGkl3GtymTk10Dvf5O80exdTLFRMvkCA5RAIZgvxMk/bbNaH/0UHQoctX9oaDeKGWUPfVaknFBQdU9009+lK/ocAlKVNHEQkw+1wuV6dFoT1/hngSw== [email protected]

4. pruébalo

c:>ssh [email protected] "ls -al /tmp/"

Esto debería enumerar el contenido de / tmp sin pedir la contraseña.

Comentarios y valoraciones de la guía

Recuerda que tienes concesión de agregar una reseña si diste con el hallazgo.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *