A transferencia de arquivos entre servidores ou até mesmo Desktops, é comum utilizarmos transferẽncias seguras como o SCP, porém entre máquinas Windows e Linux precisamos realizar algumas etapas. Entendendo o SCP
Secure Copy ou SCP é um meio seguro para transferir arquivos entre um host local e um remoto ou entre dois hosts remotos, usando o protocolo SSH. O termo SCP pode ao mesmo tempo referir-se ao Protocolo SCP ou ao Programa SCP. Alguns exemplos da utilização do SCP:
Para copiar um arquivo de um computador remoto para o computador local:
scp nomedeusuário@endereçodopcremoto:arquivo.txt /diretório/onde/salvar
Copiar um arquivo do computador local para um computador remoto:
scp arquivo.txt nomedeusuário@endereçodopcremoto:/diretório/onde/salvar
Copiar um diretório do computador local para um computador remoto:
scp -r diretório nomedeusuário@endereçodopcremoto:/diretório/onde/salvar
Copiar um arquivo entre dois computadores remotos:
scp nomedeusuário1@endereçodopcremoto1:/diretóriodoarquivo/arquivo.txt nomedeusuário2@endereçodopcremoto2:/diretório/onde/salvar
Bom são comandos usados em Sisteamas Linux, e desta forma ao executar o comando será solicitado a senha do usuário em questão, então para complementar a idéia e poder assim utilizar o SCP em scripts automatizados iremos criar uma relação de confiança entre os hosts.
1 – Baixe e execute o PuTTYgen clicando aqui ou se quiser disponibilizei uma versão para download na base do blog clicando aqui.
2 – Gere a chave privada e pública clicando no botão “Generate”
Após ter sido gerado as chaves, salve a Chave Privada clicando em “Save private Key”, informe o nome da chave e local.
Agora precisamos copiar a chave pública e enviar para o host Linux que iremos trabalhar as transferẽncias.
A relação de confiança entre o Servidor Windows o Servidor ou estação Linux se dá a esta chave que criamos, os arquivos necessários a serem enviados ao host linux será enviado através de um usuário Linux, seja ele autenticado por AD ou outro serviço, não importa o que importa é que esta chave pública esteja no lugar certo de configuração do usuário em questão. então será necessário que esta chave seja inserida no arquivo authorized_keys2 do usuário linux, se já existe este arquivo ótimo basta inserir a chave e pronto, caso não tenha então crie o arquivo authorized_keys2 no seguinte caminho /home/usuáriolinux/.ssh .
Se for necessário criar o arquivo, execute os comandos para resolver o problema de permissão:
# cd .ssh
# chmod 700 .
# chmod 600 authorized_keys2
Pronto feito isso já podemos enviar arquivos, diretórios e etc do Host Windows para o Host Linux sem a necessidade de digitar a senha do usuário, o que facilita e possibilita a execução deste procedimento em Scripts automatizados. Então vamos lá um exemplo de envio:
C:\pscp.exe -scp -i C:\Chave-Privada.ppk C:\local-de-origem\Arquiv0-a-ser-enviado usuariolinux@Ip-da-Estação-Linux:/media/diretorio-destino
Resumindo o exemplo estou enviando o Arquivo-a-ser-enviado.algumacoisa para a estação linux salvando no /media/diretorio-destino e autenticando com o usuariolinux.
Lembro ainda que o pscp.exe é o programa Windows, no linux seria apenas SCP. (Para baixar o pscp.exe clique aqui).
Bom espero ter ajudado, deixe seu comentário e avalie o artigo.
Gde Abç