Sur certains hôtes, ils ne fournissent pas correctement .bash_profiledes noms de connexion non interactifs comme scp. Les messages imprimés sur le terminal peuvent éventuellement entraîner un scpdysfonctionnement. Si vous avez des messages dans votre .bash_profilecela peut en être la cause.
Pour que vos messages de connexion, vos bannières, etc., s'affichent toujours lors de connexions interactives et que vous puissiez toujours les utiliser scpvia un nom de connexion non interactif, ajoutez ce qui suit avant tout message pouvant être imprimé dans votre .bash_profilefichier.
# ********** If not running interactively, don't do anything more! ***********
[ -z "$PS1" ] && return
Le code alternatif est:
[[ $- == *i* ]] || return
Et un autre code alternatif:
case $- in
*i*) ;;
*) return;;
esac
Ce qui, je crois, est la version la plus longue du premier code alternatif. J'ai trouvé sur certains hôtes que le premier code ne fonctionne pas correctement mais que le second fonctionne.
Lors d'une connexion scp non interactive, il interrompra toute exécution ultérieure de .bash_profile et permettra à scp de fonctionner, mais affichera vos messages de connexion lorsque vous vous connecterez via ssh.
Remarque: Ceci peut également être utilisé dans votre .bashrcfichier si vous le sourcez .bash_profile(pour $ PATH) afin que seule une partie de celui-ci soit obtenue lors de connexions non interactives.