Como faço para transferir um arquivo para o meu servidor usando o PuTTY?

14

quando chamando SCP em PuTTY na minha caixa Win7, ele não me deixa usar C: /, mas eu também não tenho idéia Onde na minha máquina local, ele procurará arquivos por padrão. Nenhum do diretório do programa ou diretório do usuário funcionou. Por exemplo, salvei file.txt ao lado de PuTTY.exe e também em C: \ Users \ Me, mas a chamada SCP file.txt file.txt em PuTTY falhou nas duas vezes com

cp: não pode stat 'file.txt'

Então, como faço para transferir um arquivo para o meu servidor usando o PuTTY?

EDIT: Além disso, chamando SCP file.txt myserver:file.txt dá um erro semelhante: file.txt: No such file or directory

Trindaz
fonte
você conhece o caminho completo para o seu arquivo.txt? do servidor completo SCP-path-to-file.txt: file.txt
Obrigado shadow_boi, mas esse é o problema: usar caminho completo significa incluir c: \, o que me dá o erro ssh: Não foi possível resolver o nome do host c: Nome ou serviço desconhecido
Trindaz
2
Eu acho que você entrou no servidor usando putty e digitou o comentário CP como você mencionou acima? Essa é a questão. Agora você está no servidor, então quando você digita C: o servidor não tem drive c
1
Eu não acho que putty sozinho pode fazer o trabalho. WinSCP é uma boa ferramenta GUI para cópia segura de arquivos, Putty funciona muito bem para o trabalho também usando a ferramenta de linha de comando chamada pscp.
Eu tive o problema de usar o pscp para copiar um arquivo através de um servidor intermediário. Esta questão foi a base de me descobrir. As instruções completas sobre como levar essa questão para a próxima etapa estão aqui superuser.com/q/577663/57649
Scott

Respostas:

13

Você já tentou algo como

pscp -l user1 c:\ftp\picture.jpg slacker1:/home/user1/pics

o manual para Putty sugere

Para enviar (a) arquivo (s) para um servidor remoto:

pscp [options] source [source...] [user@]host:target

Então, para copiar o   arquivo local c:\documents\foo.txt para o servidor example.com como usuário fred para o arquivo /tmp/foo você digitaria:

pscp c:\documents\foo.txt [email protected]:/tmp/foo


Postscript

o Página de download de massa permite baixar putty.zip - um conjunto completo de ferramentas Putty ou você pode simplesmente baixar as ferramentas que você precisa (caso em que você pode ter baixado putty.exe mas ainda não baixou pscp.exe)

RedGrittyBrick
fonte
1
Eu tenho putty instalado. Eu não pareço ter pscp disponível dentro do shell putty ou dentro do meu shell local. Você poderia lançar um pouco mais de luz? Onde você executa o pscp? Felicidades
JonnyRaa
1
@JonnyLeeds: Eu o executo em um prompt de comando do Windows (cmd) do diretório de instalação do Putty, por exemplo. C:\Program Files (x86)\PuTTY\pscp.exe No meu caso. Você pode colocar o caminho completo entre aspas duplas (por causa dos espaços) ou adicionar o diretório ao% PATH% (veja outras respostas aqui para saber como fazer isso).
RedGrittyBrick
1
Oi obrigado pela resposta, mas tudo o que tenho na minha pasta putty é putty.exe, puttygen.exe e um arquivo ppk
JonnyRaa
1
@JonnyLeeds: Você pode baixar apenas o pscp.exe de chiark.greenend.org.uk/~sgtatham/putty/download.html ou baixe um putty.zip contendo um conjunto completo e consistente da última versão das ferramentas Putty e substitua o conjunto esparso que você possui.
RedGrittyBrick
Ótima resposta. Mais um detalhe: muitas vezes você pode usar um período após o cólon do local remoto se não souber onde deseja que o arquivo seja enviado. Por exemplo: pscp -l nome de usuário C: \ dir \ file.txt server :.
TOOGAM
6

Uma solução que não usa o PuTTY: Conecte-se ao servidor com o FileZilla usando o SFTP para transferir arquivos.

Trindaz
fonte
5

Não há como iniciar uma transferência de arquivos de / para o Windows local a partir de uma sessão SSH aberta na janela do PuTTY.

Embora as versões recentes do PuTTY suportem o compartilhamento de conexão.

Enquanto você ainda precisa executar um cliente de transferência de arquivos compatível pscp ou o psftp ), nenhum novo login é necessário, automaticamente (se habilitado) faz uso de uma sessão PuTTY existente.

Para ativar o compartilhamento, veja:
Compartilhando uma conexão SSH entre as ferramentas do PuTTY .


Forma alternativa, é usar WinSCP, um cliente GUI SFTP / SCP . Enquanto navega no site remoto, você pode a qualquer momento abrir um terminal SSH no mesmo site usando o Aberto em PuTTY comando.

Vejo Abrindo Sessão no PuTTY .

Com uma configuração adicional, você pode até mesmo fazer o PuTTY navegar automaticamente para o mesmo diretório em que você está navegando com o WinSCP.

Vejo Abrindo PuTTY no mesmo diretório .

(Eu sou o autor do WinSCP)

Martin Prikryl
fonte
1
Usando WinSCP eu finalmente consegui, obrigado!
psulek
0

Eu não consegui encontrar o pscp como sugerido acima e acabei usando o WinScp.

É um programa do lado do cliente com uma interface gráfica que pega suas configurações putty.

JonnyRaa
fonte
chiark.greenend.org.uk/~sgtatham/putty/download.html oferece pscp.exe e o arquivo psftp.exe similar. o the.earth.li/~sgtatham/putty/latest/x86/… (para a versão 0.63, que é a versão mais recente no momento da redação deste artigo) pode ser mais simples para pessoas que preferem passar por um processo de instalação fácil usando uma GUI, enquanto o arquivo putty.zip também contém putty.exe e pscp.exe e psftp.exe
TOOGAM
0
  1. Em PSFTP, abra a pasta na qual você deseja colocar o arquivo.
    Ex. cd nome do arquivo
  2. Na linha de comando, digite: lcd pathtofolder
    Ex. lcd C: \ Usuários \ Lyn \ Pictures
  3. Clique em entrar e digite: colocar nome do arquivo
    Ex. coloque lynhw1.pdf
  4. Clique em entrar e o arquivo deve ser transferido

Espero que funcione para você, assim como para mim.
Nota: Eu fiz isso no PSFTP usando Putty.

"PSFTP, o cliente PuTTY SFTP, é uma ferramenta para transferir arquivos com segurança entre computadores usando uma conexão SSH" - http://the.earth.li/~sgtatham/putty/0.52/htmldoc/Chapter6.html

Faça o download do PSFTP no http://www.putty.org/ página da web. Em download putty aqui.

Lyn
fonte
-2

Se você quiser automatizar este tipo de transferência de arquivos via .bat:

@echo off

set pw=foobemcfoobar

set inp=input.lst

for /F "tokens=*" %%i in (%inp%) do (

echo %%i

echo y | C:\tmp\pscp.exe -C -agent -pw "%pw%" C:\tmp\files\foo.txt root@%%i:/tmp/

echo "=== Accepting SSH, copying ...==="

 )

(Onde input.lst é um arquivo de texto com os alvos listados)

Nin Kan
fonte
Embora talvez relevante para o tópico Isso não responde a pergunta.
Twisty Impersonator
Também não sugira que as pessoas aceitem cegamente uma chave de host usando echo y. Você perde a segurança ao fazer isso.
Martin Prikryl
mhh concordou, o "eco" é uma questão de segurança. quanto à relevância, eu apenas peguei essa cópia do arquivo pensei um pouco mais porque eu já estava nessa situação
Nin Kan