scpが出来なくて超ハマったメモ(原因は.bashrc)
とあるFreeBSDのサーバーからファイルをscpでダウンロードしようとして、出来なくてハマったメモです。
状態は以下の通り。
- サーバーは FreeBSD 4.10
- クライアントは CentOS4 と FreeBSD 6.1-Release
- sshは繋がる
- WindowsからWinSCPでのダウンロードもOK
- scpでダウンロードしようとするとできない(固まる)
- sshでリモートコマンドが通らない(固まる)
scp を v オプション付きでログを出力しながら実行してみると、以下の時点で固まっていました。
debug1: Sending command: scp -v -f ~/filename.ext
原因は、.bashrcで別のシェル(zsh)を立ち上げていたことでした。
↓.bashrcの中身
$HOME/local/bin/zsh
この行をコメントアウトしたところ、解決しました。
なぜこんなことをしていたかというと、接続先のサーバーにはzshがインストールされておらず、権限も無かったのでホームディレクトリ($HOME/local/bin/zsh)にzshをインストールしていました。chshでホームディレクトリにインストールしたシェルを指定することは出来ないので、.bashrcで自動で起動するようにしていたのです。
sshも繋がるしWinSCPも出来たのでなかなか原因にたどり着くことができませんでした。同じような状況のときは.~rcを調べてみるといいかもしれません...。
試してませんが、以下のようにしたらどうでしょうか?
exec $HOME/local/bin/zsh
> katokenさん
提案ありがとうございます。
試してみましたが残念ながら...同じように固まりました。
うまい解決法じゃないかもしれませんが、.bashrc の内容を以下にすることで scp できるようになりました。あまり試していないので他に影響があるかもしれませんが。。。
--- .bashrc ---
if [ $PS1 ]; then
/bin/zsh
fi
--- end ---
> katokenさん
できました!
なるほど、対話的モードのときだけセットされる環境変数を利用して...ですかね。
参考になりました!
[...] ち上げるようにしてたらscpができなくなった」というのがあった。(scpが出来なくて超ハマったメモ(原因は.bashrc)) 助かりました。ありがとうございます。 カテゴリー: shellscript &nb [...]