En algunos hosts, obtienen de forma incorrecta .bash_profileinicios de sesión no interactivos como scp. Los mensajes que se imprimen en el terminal pueden hacer scpque no funcione correctamente. Si tiene mensajes en su, .bash_profileesta puede ser la causa.
Para que sus mensajes de inicio de sesión, pancarta, etc. se muestren en inicios de sesión interactivos y pueda seguir utilizando scpun inicio de sesión no interactivo, agregue lo siguiente antes de cualquier mensaje que se imprima en su .bash_profilearchivo.
# ********** If not running interactively, don't do anything more! ***********
[ -z "$PS1" ] && return
El código alternativo es:
[[ $- == *i* ]] || return
Y otro código alternativo:
case $- in
*i*) ;;
*) return;;
esac
Lo que creo es la versión más larga del primer código alternativo. En algunos hosts he encontrado que el primer código no funciona correctamente pero el segundo sí.
Durante un inicio de sesión scp no interactivo, abortará la ejecución posterior de .bash_profile y permitirá que scp funcione, pero mostrará sus mensajes de inicio de sesión cuando inicie sesión a través de ssh.
Nota: Esto también se puede usar en su .bashrcarchivo si lo .bash_profileobtiene (por $ PATH), de modo que solo una parte se obtiene durante inicios de sesión no interactivos.