Sur certains hôtes, la source .bash_profile
est incorrecte pour les connexions non interactives telles que scp. Les messages qui sont imprimés sur le terminal peuvent éventuellement faire en sorte que scp
ne fonctionne pas correctement. Si vous avez des messages dans votre .bash_profile
, cela peut en être la cause.
Pour que vos messages de connexion, bannière, etc. s'affichent toujours sur les connexions interactives et que vous puissiez toujours utiliser scp
via une connexion non interactive, ajoutez ce qui suit avant tout message qui s'imprimerait dans votre fichier .bash_profile
.
# **********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 est, je crois, la version la plus longue du premier code alternatif. J'ai constaté que sur certains hôtes, le premier code ne fonctionne pas correctement, mais le second oui.
Lors d'une connexion scp non interactive, il interrompra l'exécution de .bash_profile et permettra à scp de fonctionner, mais affichera vos messages de connexion lorsque vous vous connecterez via ssh.
Note: Il peut également être utilisé dans votre fichier .bashrc
si vous le sourcez à partir de .bash_profile
(pour $PATH), de sorte qu'une partie seulement est source lors de connexions non interactives.