scp do host remoto falha devido ao conjunto de saudações de login em .bashrc [duplicado]

3

Meu arquivo simples scp de um host remoto (na verdade, uma VM executada localmente, mas não importa) falhou sem exibir nenhuma mensagem de erro, mas claramente não copiou o arquivo desejado:

scp myuser@myhost:~/.bashrc ~/.bashrc.ubuntu

A única coisa que foi exibida foi

================================================================================

Eu achei isso peculiar, porque essa foi a primeira linha exibida na minha saudação de login no controle remoto, que se parece com:

================================================================================
Welcome to <Ubuntu 12.04.2 LTS>
You are <myuser> logged into <hostname> (my_ipaddress)
Today is <Wed Aug 28 16:48:49 EDT 2013>
================================================================================

E aqui está o conteúdo do .bashrc no controle remoto que define essa saudação:

1 if [ -f ~/.bash_aliases ]; then
2     . ~/.bash_aliases
3 fi
4 
5 
6 export PS1='\w@\t>'
7 
8 set -o vi
9 
10 printf %80s |tr " " "="
11 echo
12 
13 echo "Welcome to <"'lsb_release -d | sed 's/Description\:\s*//''">"
14 
15 export IPADDR='hostname -I'
16 
17 echo "You are <"$LOGNAME"> logged into <"$HOSTNAME"> ("$IPADDR")"
18 
19 echo "Today is <"'date'">"
20 
21 
22 printf %80s |tr " " "="
23 echo

Uma vez que eu removi tudo de 9 para baixo no controle remoto .bashrc, o scp teve sucesso.

Alguém pode expor sobre essa ocorrência peculiar? O host local é Mac OS Mountain Lion e o remoto (VM) é Ubuntu 12.04 .

    
por amphibient 28.08.2013 / 23:12

2 respostas

3

Ajudado por este tópico , percebi que os caracteres especiais da saudação eram o problema e que o .bashrc deve retornar apenas a menos que estejamos no modo interativo. Então, adicionei o seguinte ao início de .bashrc no controle remoto:

# If not running interactively, don't do anything
if [[ $- != *i* ]]; then return; fi

O que resolveu o problema e eu pude usar scp

    
por 28.08.2013 / 23:23
1

sim, se o seu shell remoto estiver falante quando você fizer ssh, o scp falhará, pois depende de uma conexão ssh clara. aqui está uma explicação mais detalhada.

link

    
por 28.08.2013 / 23:21