Coda2やForkLiftやTransmitやらなんでもいいけどGUIのSftpソフトで、サーバーにつながらんくなった!って時の対処法です。
色んなケースがあるとは思いますが、私の場合はbashrcが悪さしてました。
原因と解決方法
原因
bashrcの記述に問題があって、Terminalみたいな「対話型ではない接続」ができなくなってました。
解決方法
ログイン時に読まれるであろうbashrcなどの「先頭」に、
[ -z "$PS1" ] && return
と記述してください。
何をしてるかというと、「対話型ではない接続」の場合は、以降を読み込まないようにしてるだけ。
普段のTerminalでの接続では、いつも通り読み込まれます。
解決までの道のり
Coda2のファイラーが突然つながらんくなった
昨日までいけてたのに!
Coda2が悪いのかと思い、Forkliftで試す→もちろんダメ。
ううむ。
ポートの指定もユーザーもssh鍵系も全部問題ないはず。
Terminalからコマンドでつないでみる
sshはいつも通りできてるけど、sftpは?
sftp -oPort="9999" username@hostname # ポートを変えてる場合はポート、username/hostnameはそれぞれのものを。
そうすると、
Connecting to hostname... Received message too long 1970496800
なんかエラーになってるー。
「Received message too long」で検索するとそれらしい記事が。
とはいえ直接の回答ではありませんでした。
が、bashrcが怪しいということがわかって、メッセージ・・もしやGUI系のソフトでログインしたらダメなやつとかあったり・・?と思ったので。
bashrcが悪かった
bashrcをリネームして読み込まれないようにして試したところ、あっさりつながるじゃないの!
ということは、どうやらつい最近覚えたbashrcのカスタマイズの影響だった模様。
bashrcの先頭に以下を追記。
# .bashrc for interactive terminal [ -z "$PS1" ] && return
「対話型の接続」の場合に定義される環境変数 PS1 がない場合は、何も読み込まないように設定。
これですっきり解決。
やっぱLinuxもといbashをきっちりやらなあかんのかしら・・