Como fazer upload do arquivo local para o servidor através do terminal Linux

25

Estou tentando fazer upload de arquivos locais para o servidor usando o Putty ou o SSH, mas sem fazer o upload para lá.

Existe algum método direto para fazer upload de arquivos do local para o servidor do terminal Linux sem usar FTP, etc.?

    
por Sanjeev Kumar Goswami 10.12.2014 / 07:52

3 respostas

43

Claro. Use scp (cópia segura) assim:

scp [source file] [username]@[destination server]:.

É claro que substitua os [source file] , [username] e [destination server] entre colchetes para corresponder às configurações locais. Portanto, se o arquivo fosse cool_stuff.txt e seu nome de usuário no servidor remoto fosse sanjeev e o destino fosse example.com , o comando seria:

scp cool_stuff.txt [email protected]:.

E a origem também pode ser remota, por isso você pode fazer o oposto do exemplo acima:

scp [email protected]:cool_stuff.txt .

Esse comando iria copiar o arquivo remoto cool_stuff.txt para qualquer diretório local em que você esteja. E se você estiver fazendo isso com vários arquivos, use um caractere curinga ( * ) como faria para um comando normal cp .

Além disso, o . indica apenas o caminho do diretório imediato; como o que você está no momento em que você executa o comando ou o caminho imediato que o usuário remoto tem no servidor de destino. Mas você também pode especificar um caminho como /this/path/right/here no exemplo local para o remoto:

scp cool_stuff.txt [email protected]:/this/path/right/here

Ou o exemplo remoto para local aqui mesmo:

scp [email protected]:cool_stuff.txt /this/path/right/here

Agora, se o servidor remoto não permitir o SSH e somente o SFTP, o SFTP é o caminho a seguir. Mas scp é muito útil quando você quer apenas lançar um arquivo e não fazer todo o processo SFTP manualmente a partir da linha de comando.

    
por 10.12.2014 / 09:16
9

Para adicionar a resposta de Jake , você poderia especificar um local - em vez de apenas . - para copiar para adicionando o caminho no final do URL como:

scp /path/to/file username@servername/ip:/destination/folder/
    
por 02.03.2017 / 17:41
6

Quando o login no servidor remoto é feito através da chave ssh , podemos usar abaixo de -i flag para passar nossa chave para o servidor:

scp -i /path/to/.ssh/id_rsa path/to/file/myFiles.gz myServer.com:/folder/on/server

-i identity_file
Selects the file from which the identity (private key) for public key authentication is read.
This option is directly passed to ssh(1).

    
por 27.11.2017 / 11:10

Tags