リモートにある 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 を起動する。
何か回避策もありそうだが、今はこのまま。