Para usar o scp são necessárias duas máquinas: uma com a aplicação servidor instalada e outra com a aplicação cliente e ambas executando. O objetivo será transferir arquivos de uma máquina para outra. Veremos como isso poderá ser feito.
Para uso do tutorial será usado a máquina classroom para transferir um arquivo à máquina de nome livingroom:
Um exemplo de uso do scp:
scp image001.jpg 10.1.1.88:/home/henriquetg/
Será transferida a imagem imagem001.jpg, sendo que a máquina de destino tem IP 10.1.1.88. Então é digitado dois pontos após o nome da máquina destino e antes do diretório em que será transferida, nesse caso o diretório home do usuário henriquetg.
Já que temos o nome da máquina (classroom), podemos usá-lo ao invés do IP desde que o servidor DNS esteja executando. A configuração deve estar em ~/.ssh/config, ou em uma entrada no arquivo /etc/hosts da máquina livingroom. O comando é:
scp imagem001.jpg livingroom:/home/henriquetg
O comando foi simplificado já que o nome da máquina é conhecido. Adicionalmente, não é necessário digitar o nome do diretório home já que ele pode ser simplificado por um ponto:
scp imagem001.jpg livingroom:.
Nesse outro exemplo /home/henriquetg, foi substituído pelo acento ~. Obtendo-se o comando:
scp imagem001.jpg livingroom:~
Caso deseje-se copiar um diretório inteiro digita-se a flag -r para cópia recursiva do diretório, conforme comando abaixo:
scp -r minha_pasta livingroom:~
Agora o diretório minha_pasta e o seu conteúdo serão copiados. Outra flag útil é -p que preserva as datas de modificação, criação dos arquivos, usando-se o comando abaixo:
scp -rp minha_pasta livingroom:~
No entanto, se o usuário logado na máquina de origem (classroom) não existir na máquina de destino (livingroom) é necessário adicioná-lo com @ para ser o usuário utilizado na transferência e autorizado pela máquina de destino:
scp imagem001.jpg henriquetg@livingroom:~
Então a senha do usuário henriquetg será requisitada com o diretório /home/henriquetg como diretório de destino.
Caso outra porta que não seja a 22 (padrão) esteja sendo usada é necessário adicionar a flag-P precisa ser adicionada e a porta especificada:
scp -P 4022 imagem001.jpg henriquetg@livingroom:~
Caso queira copiar um arquivo da máquina remota (até então a de destino) para a sua local (até então a de origem) pode ser usado o comando abaixo, especificando o arquivo que deve ser copiado da máquina remota, nesse caso a imagem imagem001.jpg da máquina remota (livingroom):
scp @livingroomroom:~/imagem001.jpg .
Pronto, esses são os exemplos para transferência de arquivos com scp.
O próximo tutorial mostrará como criar túneis com o SSH, avance clicando aqui.