ホーム » ブログ » 2008年02月 » scpが出来なくて超ハマったメモ(原因は.bashrc)

scpが出来なくて超ハマったメモ(原因は.bashrc)

2008-02-27 written by akiyan | このエントリーを含むはてなブックマーク このエントリーを含むはてなブックマーク

とある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を調べてみるといいかもしれません...。

2008-02-27 written by akiyan | 記事 | このエントリーを含むはてなブックマーク このエントリーを含むはてなブックマーク

コメント

katoken - 2008-02-27 19:07:56

試してませんが、以下のようにしたらどうでしょうか?

exec $HOME/local/bin/zsh

あきやん - 2008-02-28 14:02:19

> katokenさん
提案ありがとうございます。
試してみましたが残念ながら...同じように固まりました。

katoken - 2008-02-28 16:04:28

うまい解決法じゃないかもしれませんが、.bashrc の内容を以下にすることで scp できるようになりました。あまり試していないので他に影響があるかもしれませんが。。。
--- .bashrc ---
if [ $PS1 ]; then
/bin/zsh
fi
--- end ---

あきやん - 2008-02-28 17:05:12

> katokenさん
できました!
なるほど、対話的モードのときだけセットされる環境変数を利用して...ですかね。

参考になりました!

投稿



本文と関連性の無いコメントは削除することがあります。予めご了承ください。

トラックバック

このエントリへのトラックバックURLは
http://www.akiyan.com/cgi/mt/mt-tb.cgi/1449
です。トラックバック元のエントリに当サイトへのリンクが無い場合はトラックバックを削除することがあります。