Questão Usando a linha de comando do PuTTY para fazer o download de arquivos por meio do SSH


Eu estou investigando várias opções para escrever um programa que pode automatizar o download de arquivos em um servidor SSH. Eu preciso disso para logar automaticamente, navegar para diretórios diferentes e baixar todos os arquivos de lá.

No entanto, pensando melhor, parece-me que pode ser mais fácil usar a linha de comando PuTTY para baixar todos os arquivos de várias pastas para o meu próprio computador Windows.

Eu atualmente tenho uma conta de root que eu realmente não quero. (Receio que algo possa dar errado e serei o culpado.) Posso solicitar ao administrador do servidor que me forneça uma conta limitada apenas com privilégios de leitura - e apenas para esses diretórios? O PuTTY ainda funcionaria ou requer algo especial no servidor SSH para funcionar? Se assim for, isso seria # 1 maneira para eu resolver o problema do meu cliente.


2


origem




Respostas:


WinSCP é um bom cliente para transferência de arquivos através de SSH, e pode trabalhar a partir do windows cli ou gui.

quanto a direitos, não, você não precisa do root para o ssh, e se eles reduzirem seus privilégios, mas concederem as permissões necessárias nos arquivos que você precisa, isso deve funcionar bem para você. Pessoalmente, não permito login root via ssh, mas não costumo executar distros que ativam uma conta root por padrão.


8



Obrigado pela sua resposta. Eu tenho upvoted por agora. Mais do que qualquer coisa eu preciso de linha de comando embora. Mas vou verificar o WinSCP :) - Tom
O winscp pode ser usado via cli, então é apenas uma questão de gosto nos clientes. - Frank Thomas


O pacote PuTTY de utilitários inclui pscp que é equivalente ao OpenSSH scp comando. Você poderia usá-lo assim:

pscp -pw password username@remote.server.com:/path/to/folder/* c:\local\folder

Isso copiará todos os arquivos remotos na pasta especificada para a pasta local e não necessitará de nada especial na extremidade remota, além de permitir o acesso limitado do usuário ssh e o acesso à pasta.

Você provavelmente iria querer usar chaves públicas / privadas para evitar a necessidade de colocar a senha em seus scripts - a segunda resposta para isso questão mostra como.

Então você usaria:

pscp -i /path/to/private.key username@remote.server.com:/path/to/folder/* c:\local\folder

Para fazer isso, a conta do usuário teria que ter um /home/username/.ssh/authorized_keys arquivo, eo servidor SSH teria que permitir a autenticação de chave pública.


5



Esta parece ser uma solução ideal. Vou deixar a questão aberta por algum tempo para receber mais respostas. (Mas eu suspeito que vou estar marcando isso como a resposta.) Eu virei sua resposta por enquanto :) - Tom