2012-04-20 16:02:59 +0000 2012-04-20 16:02:59 +0000
24
24

Como SCP de servidor linux para cliente Windows

Estou a SSHing para uma máquina Linux usando PuTTY e a tentar copiar um ficheiro para baixo algures (em qualquer lugar) para a minha máquina local. Eu figurei SCP é o melhor candidato para o trabalho mas não me importo, desde que a solução funcione!

I cd para o directório contendo o ficheiro que quero (app.war) e digite o seguinte:

scp app.war ./

Tentei ambos em vão:

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

Fez-me pensar que talvez o SCP seja uma ferramenta cliente/servidor e requer um cliente na minha máquina Windows, que não está lá.

Estou apenas a usar a sintaxe errada? Ou estou muito fora da base? Se sim, que opções tenho eu? Obrigado desde já!

Respostas (6)

25
25
25
2012-04-20 16:12:55 +0000

para que possa copiar ficheiros de volta para o seu Windows necessita de daemon/serviço SSH para correr no seu Windows, é muito mais fácil utilizar esta ferramenta, tem a possibilidade de importar sessões do Putty, um cliente muito simples que vai adorar! WinSCP :: Free SFTP and FTP client for Windows

12
12
12
2012-04-20 16:10:01 +0000

Tem toda a razão. O SSHD é o serviço de servidor SSH que corre no host. Aceita ligações de clientes SSH (como o PuTTy), clientes SCP e clientes SFTP.

Pode descarregar pscp a partir do mesmo site onde PuTTTY está alojado.

A partir da máquina windows, executaria um comando semelhante a

pscp.exe someuser@somehost.com:/path/to/app.war c:\tmp

2
2
2
2015-07-27 11:19:07 +0000

Para SCP um arquivo para uma máquina Windows, você precisa de um servidor SSH/SCP no Windows.

Não há suporte SSH/SCP no Windows por padrão. Você pode instalar o build da Microsoft do OpenSSH para Windows Lançamentos e Downloads ). Está disponível como funcionalidade opcional no Windows 10 versão 1803 e mais recente. Também pode ser instalado manualmente em versões antigas do Windows.

Preparei um guia para configurar SSH/SFTP server no Windows usando esta compilação Microsoft do OpenSSH .

Veja também [ O IIS SFTP é suportado nativamente pelo Windows? Embora como você SSH no servidor Linux a partir da máquina Windows, você pode realmente baixar um arquivo do servidor Linux para o servidor Windows, em vez de tentar carregar o arquivo do servidor Linux para o servidor Windows.

No seu SSH tem um acesso do Windows para Linux, também tem um acesso SCP (ou melhor ainda um acesso SFTP).

Utilize qualquer cliente SCP/SFTP disponível.

Pode usar WinSCP SFTP/SCP client , que tem tanto GUI como interface de linha de comando .

Outra alternativa é o conjunto de ferramentas PuTTY, que inclui a ferramenta de linha de comando pscp com uma sintaxe semelhante à do comando OpenSSH scp. Também as últimas versões do Windows 10 vêm com o OpenSSH scp integrado e também pode ser instalado em versões mais antigas.

(Eu sou o autor do WinSCP)

1
1
1
2019-05-17 03:57:39 +0000

O Windows 10 tem agora o OpenSSH construído em https://docs.microsoft. com/en-us/windows- server/administration/openssh/openssh_install_firstuse

Obter um prompt de comando administrativo

Open PowerShell as an Administrator.

Verificar versões disponíveis

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

Iniciar servidor e activar no arranque

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

Encontre o seu endereço IP Windows

ipconfig

Na sua máquina remota (Linux), encontre o seu endereço IP.

ifconfig

Crie uma chave SSH pública

ssh-keygen.exe

Copie a chave pública da máquina local (Windows) para a remota (Linux) para que não tenha de estar sempre a digitar uma password.

Note que o ssh-copy-id não está actualmente disponível no Windows.

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

Faça o mesmo na sua máquina Linux (Nota, o ssh-copy-id não 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'
  • O método acima não funcionou para mim, por isso acabei por SCPar manualmente a chave pública e colá-la no ficheiro C:/Users/YOU/.ssh/authorized_keys.

  • Isso ainda não funcionou, por isso tive de modificar o ficheiro sshd_config.

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

Crie uma senha no Windows se você ainda não tem uma

System Settings...Sign-in options

– Nota, você ainda pode desativar a tela de login do Windows a) Definindo a opção ‘Require sign-in’ para nunca e b) Usando o comando ‘netplwiz’ e desmarcando a opção ‘Users must enter password’. …‘ checkbox.

Agora deve ser capaz de SSH ou SCP da sua máquina Linux

scp FILE WINDOWS_IP:C:/Users/YOU/Desktop
1
1
1
2019-12-05 02:57:19 +0000

Você pode fazer isso usando o subsistema Linux Ubuntu para Windows (você precisa habilitar isso como uma funcionalidade do Windows). Depois pode utilizar um cliente terminal Linux que corre no Windows, obtendo-o a partir do Microsoft Store (por exemplo, Ubuntu 16.04 LTS). Então, se você tiver a segurança ssh configurada para o remoto na sua máquina Linux, você pode scp a partir do seu terminal local Windows Ubuntu (quando logado como o nome de usuário que você definiu para a sua instância Linux) algo como isto:

scp -i ~/.ssh/my_rsa username@11.11.11.11:~/myfile ~/… digite RSA passphrase

O arquivo remoto será copiado para o seu sistema de arquivos local Ubuntu usado pelo Windows e.g.

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

-1
-1
-1
2017-05-30 13:43:58 +0000

Passo 1: Descarregar pscp https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html (Baseado na sua máquina descarregue a respectiva versão)

Passo 2: Familiarize-se com os comandos pscp Para o fazer, abra o prompt de comando na sua máquina windows, vá ao directório onde descarregou o pscp. exe e digite “pscp”

Passo 3: Transfira o ficheiro da sua máquina Linux para a máquina Windows abra o seu prompt de comando, e corra abaixo do comando fornecendo os seus detalhes:

pscp usernameofyourlinuxmachine@10.40.000.000:/path/of/your/File/nameofyourfile.txt ./

e este comando irá transferir o ficheiro da sua máquina Linux para o directório actual da sua máquina Windows

Passo 4: Transfira o ficheiro da sua máquina Windows para a máquina Linux abra o seu comando e corra abaixo do comando fornecendo os seus detalhes:

pscp nameofyourfile.txt usernameofyourlinuxmachine@10.40.000.000:/path/where/youwantyourfile

Espero que isto esteja claro e que funcione para todos vocês!