リモートにある Linux ホスト A に ssh はできるのに、scp と rsync ができなくなった。

ちょっと焦ったので、状況をメモしておく。

 

これまで 

 

ssh -p 60022 A 

scp -P 60022 local_file user@A:~/xx/remote_file

rsync -e "ssh -p60022" -auv local_dir/ user@A:~/xx/remote_dir/ 

 

というような使い方をしていた。

問題なく使えていたのだが、あるときから ssh 以外を実行したときに

パスワード入力後応答しなくなってしまった。

 

いろいろ検討した末、ホスト A で行ったある変更が問題だった。

 

他のホストでも使っている zsh を A でも自動で使えるようにするために

.bashrc の最後の行に zsh という行を追加したのだった。

ssh で A にログインしたときに、自動的に zsh が起動し便利なように。

 

ところがどういうわけか、これが悪さをしていた。

今まで通り bash で起動するようにしたら、scp も rsync も今まで通り使えるようになった。

 

ssh でログイン時は手動で zsh を起動する。

 

何か回避策もありそうだが、今はこのまま。