Cómo SCP del servidor Linux al cliente de Windows

23

Estoy SSHing en una máquina Linux usando PuTTY e intentando copiar un archivo en algún lugar (en cualquier lugar) a mi máquina local. Me imagino que SCP es el mejor candidato para el trabajo, pero no me importa, ¡mientras la solución funcione!

I cdal directorio que contiene el archivo que quiero ( app.war) y escriba lo siguiente:

scp app.war ./

He intentado ambos en vano:

scp app.war ./C:/Users/myUser/
scp app.war ./Users/myUser/

Me hizo pensar que quizás SCP es una herramienta cliente / servidor y requiere un cliente en mi máquina Windows, que no está allí.

¿Estoy usando la sintaxis incorrecta? ¿O estoy fuera de lugar? Si es así, ¿qué opciones tengo? ¡Gracias por adelantado!

pnongrata
fuente
La verdadera respuesta a esta pregunta está aquí: stackoverflow.com/a/23412501/1579667 . La sintaxis esscp some_file user@host:/c/temp
Benj
Ver también cliente y servidor Bitvise SSH. Es uno de los software SSH más antiguos para Windows. El cliente es una descarga gratuita y de uso gratuito.
jww

Respuestas:

25

para poder copiar archivos de nuevo a su Windows, necesita que el servicio / demonio SSH se ejecute en su Windows, es mucho más fácil usar esta herramienta, tiene la capacidad de importar sesiones desde Putty, un cliente muy sencillo ¡quiéralo!

WinSCP :: Cliente SFTP y FTP gratuito para Windows

alexus
fuente
Solo una herramienta increíble :). Me encantó \ m /
Chaitanya
Realmente no responde la pregunta original, que estaba viviendo en la línea de comandos. Vea mi comentario debajo de la pregunta original.
Benj
@Benj OP pidió una solución, WinSCPes una buena solución para esa tarea.
alexus
12

Estás en lo correcto. SSHD es el servicio del servidor SSH que se ejecuta en el host. Acepta conexiones de clientes SSH (como PuTTy), clientes SCP y clientes SFTP.

Puede descargar pscpdesde el mismo sitio web donde se aloja PuTTY .

Desde la máquina de Windows, ejecutarías un comando similar a

pscp.exe [email protected]:/path/to/app.war c:\tmp

George M
fuente
2

Para SCP un archivo a una máquina Windows, necesita un servidor SSH / SCP en Windows.

No hay soporte SSH / SCP en Windows por defecto. Puede instalar la compilación de Microsoft de OpenSSH para Windows ( versiones y descargas ). Está disponible como característica opcional en Windows 10 versión 1803 y posteriores. También se puede instalar manualmente en versiones anteriores de Windows.

He preparado una guía para configurar el servidor SSH / SFTP en Windows usando esta compilación de Microsoft de OpenSSH .

Consulte también ¿IIS SFTP es compatible de forma nativa con Windows?


Aunque a medida que SSH ingresa al servidor Linux desde la máquina Windows, en realidad puede descargar un archivo desde el servidor Linux al servidor Windows, en lugar de intentar cargar el archivo desde el servidor Linux al servidor Windows.

Si tiene un acceso SSH de Windows a Linux, también tiene un acceso SCP (o incluso mejor un acceso SFTP).

Use cualquier cliente SCP / SFTP disponible.

Puede usar el cliente WinSCP SFTP / SCP , que tiene una interfaz gráfica de usuario y una interfaz de línea de comandos .

Otra alternativa es el conjunto de herramientas PuTTY, que incluye la pscpherramienta de línea de comandos con una sintaxis similar al scpcomando OpenSSH . Además, las últimas versiones de Windows 10 vienen con OpenSSH scpincorporado y también se pueden instalar en versiones anteriores.

(Soy el autor de WinSCP)

Martin Prikryl
fuente
¿hay una versión de pscp para OSX / Linux?
codingknob
@codingknob Claro, hay un paquete de "masilla" para muchas distribuciones. Aunque pscpes funcionalmente idéntico a OpenSSH scp, que ya está disponible en todas / la mayoría de las distribuciones.
Martin Prikryl
1

Windows 10 ahora tiene OpenSSH integrado. Https://docs.microsoft.com/en-us/windows-server/administration/openssh/openssh_install_firstuse

Obtenga un símbolo del sistema de administrador

Open PowerShell as an Administrator.

Consultar versiones disponibles

Get-WindowsCapability -Online | ? Name -like 'OpenSSH*'

Instalar cliente

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

Instalar servidor

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

Inicie el servidor y habilítelo en el arranque

Start-Service sshd
Set-Service -Name sshd -StartupType 'Automatic'

Encuentra tu dirección IP de Windows

ipconfig

En su máquina remota (Linux), encuentre su dirección IP.

ifconfig

Crear una clave SSH pública

ssh-keygen.exe

Copie la clave pública de la máquina local (Windows) a la remota (Linux) para que no tenga que escribir una contraseña todo el tiempo.

Tenga en cuenta que ssh-copy-id no está disponible actualmente en Windows.

cat C:\Users\YOU/.ssh/id_rsa.pub | ssh USER@REMOTE_IP 'mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys'

Haga lo mismo en su máquina Linux (Nota, ssh-copy-id no funciona)

ssh-keygen # if needed
cat ~/.ssh/id_rsa.pub | ssh USER@WINDOWS_IP 'mkdir -p ~/.ssh && type con >> C:/Users/YOU/.ssh/authorized_keys'
  • El método anterior no funcionó para mí, así que terminé manualmente SCPing la clave pública y pegándola en el archivo C: /Users/YOU/.ssh/authorized_keys.

  • Eso todavía no funcionaba, así que tuve que modificar el archivo sshd_config.

    • Abra el Bloc de notas como administrador

    • Abra% programdata% \ ssh \ sshd_config

    • Agregue las siguientes líneas:

        Match User YOU
             AuthorizedKeysFile C:/Users/YOU/.ssh/authorized_keys
  • Reiniciar

Crea una contraseña en Windows si aún no tienes una

System Settings...Sign-in options

- Tenga en cuenta que aún puede deshabilitar la pantalla de inicio de sesión de Windows mediante a) Configurando la opción 'Requerir inicio de sesión' para nunca yb) Usando el comando 'netplwiz' y desmarcando la casilla de verificación 'Los usuarios deben ingresar la contraseña ...'.

Ahora debería poder SSH o SCP desde su máquina Linux

scp FILE WINDOWS_IP:C:/Users/YOU/Desktop
ismael
fuente
1

Puede hacerlo utilizando el subsistema Linux Ubuntu para Windows (debe habilitarlo como una función de Windows). Luego puede usar un cliente de terminal de Linux que se ejecuta en Windows al obtenerlo de la Tienda Microsoft (por ejemplo, Ubuntu 16.04 LTS). Luego, si tiene la seguridad ssh configurada de forma remota en su máquina Linux, puede hacerlo scpdesde su terminal local de Windows Ubuntu (cuando inició sesión como el nombre de usuario que configuró para su instancia de Linux) algo como esto:

scp -i ~/.ssh/my_rsa [email protected]:~/myfile ~/ ... ingrese la frase de contraseña RSA

El archivo remoto se copiará en su sistema de archivos Ubuntu local utilizado por Windows, por ejemplo

C:\Users\my.username\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu16.04onWindows_79rhkp1fndgsc\LocalState\rootfs\home\my_linux_username

Chris Halcrow
fuente
1
En las últimas versiones de Windows 10, (Win32-OpenSSH) scp(.exe)está integrado. No necesitas instalar nada.
Martin Prikryl
-1

Paso 1: descargue pscp
https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html
(según la máquina, descargue la versión correspondiente)

Paso 2: Familiarícese con los comandos de pscp
Para hacerlo, abra el símbolo del sistema en su máquina Windows, vaya al directorio donde descargó pscp.exe y escriba "pscp"

Paso 3: Transfiera el archivo desde su máquina Linux a la máquina Windows,
abra el símbolo del sistema y ejecute el siguiente comando proporcionando sus detalles:

pscp [email protected]:/path/of/your/File/nameofyourfile.txt ./

y este comando transferirá el archivo desde su máquina Linux al directorio actual de su máquina Windows

Paso 4: Transfiera el archivo desde su máquina Windows a la máquina Linux,
abra el símbolo del sistema y ejecute el siguiente comando proporcionando sus detalles:

pscp nameofyourfile.txt [email protected]:/path/where/youwantyourfile

¡Espero que esto sea claro y funcione para todos ustedes!

SH '
fuente
2
Las respuestas de solo enlace son bastante inútiles, ya que pueden dejar de funcionar en el futuro; intente expandir su respuesta explicando realmente los pasos en el video.
djsmiley2k en la oscuridad