Estou tentando transferir um arquivo da minha máquina local para uma máquina remota.
Quando eu uso scp
sem -v
opção, dá apenas a seguinte saída:
.--. or '\033[0;1;33;93m.-\033[0;1;32;92m-.\033[0m'
Quando tento scp
com a -v
opção, obtenho a seguinte saída, parece que os arquivos foram transferidos com sucesso:
--
$ scp -v file.sh user@IP:/home/user/foo
debug1: channel 0: new [client-session]
debug1: Requesting [email protected]
debug1: Entering interactive session.
debug1: pledge: network
debug1: Sending environment.
debug1: Sending env LC_PAPER = tr_TR.UTF-8
debug1: Sending env LC_ADDRESS = tr_TR.UTF-8
debug1: Sending env LC_MONETARY = tr_TR.UTF-8
debug1: Sending env LC_NUMERIC = tr_TR.UTF-8
debug1: Sending env LC_ALL = en_US.UTF-8
debug1: Sending env LC_TELEPHONE = tr_TR.UTF-8
debug1: Sending env LC_IDENTIFICATION = tr_TR.UTF-8
debug1: Sending env LANG = en_US.UTF-8
debug1: Sending env LC_MEASUREMENT = tr_TR.UTF-8
debug1: Sending env LC_CTYPE = UTF-8
debug1: Sending env LC_TIME = tr_TR.UTF-8
debug1: Sending env LC_NAME = tr_TR.UTF-8
debug1: Sending command: scp -v -t /home/user/foo
.--.
debug1: client_input_channel_req: channel 0 rtype exit-status reply 0
debug1: channel 0: free: client-session, nchannels 1
debug1: fd 0 clearing O_NONBLOCK
debug1: fd 1 clearing O_NONBLOCK
Transferred: sent 2504, received 2668 bytes, in 1.7 seconds
Bytes per second: sent 1510.2, received 1609.1
debug1: Exit status 0
Por favor, veja sshd_config
o arquivo aqui . Observe que posso ssh
entrar na máquina remota. Também ssh user@IP pwd
retorna /home/user
.
[Q] scp
transfere o arquivo com sucesso, mas não aparece na máquina remota. Qual pode ser a razão para isso e como eu poderia resolvê-lo?
Certifique-se de não ter scripts de inicialização em seu shell que ecoem dados no terminal. Isso pode estar dentro
.bashrc
ou.profile
Quando o scp se conecta ao host remoto, ele espera ver os cabeçalhos do servidor SSH seguidos por um fluxo stdin aberto.
Se o seu .profile no host remoto ecoar qualquer saída, isso fará com que o scp falhe silenciosamente. Se for esse o caso, você pode remover isso ou colocar uma condição de guarda para garantir que nada seja impresso na ausência de um dispositivo tty de controle. Veja
tty
o comando para isso.Eu normalmente uso hostname (nome DNS, em vez de IP). Por favor, tente o abaixo:
Qual sistema operacional e sistema de arquivos você está executando em sua máquina remota? Quais são os atributos do arquivo antes de copiá-lo? É legível por todos?
Como outra etapa de solução de problemas, tente copiar o arquivo de volta da máquina remota para a máquina local, mas dê outro nome a ele.