星期四, 3月 29, 2007

sftp可能會發生的問題

今天想連到linux工作站的sftp,結果發生悲劇...

因為filezilla連線時,就卡在CONNECT上,完全不知道原因。
用wireshark看trace時,也只發現到有很多encrypted packet。
試著用linux的sftp連上工作站時,出現了戲劇化的轉折-
Received message too long 1500476704

What????

Google發現原來是sftp的FAQ阿(我真是太弱了...)
問題出在大家的 .bashrc/.tcshrc/.cshrc 這幾個檔案裡面。
如果我們在 .tcshrc/.cshrc/.bashrc 裡面 echo 一些東西,
或者是執行像是 date, nfrm, whosebirthday 等會印出東西的
動作,因為 sftp 執行時也會去執行這些檔案中的動作,所以
當這些檔案一輸出東西,sftp 的 server 就產生錯誤,而導致
上面所說的錯誤訊息並且斷線。

那solution呢?
當然是把會印出訊息的地方轉到sftp登入時不會執行的檔案上;
也就是.....bash的bash_profile
或者也可以加上if [$?prompt]來限制sftp去印這些東西~

ps. 如果執行一些命令時發生錯誤,那麼印出的錯誤訊息也會使sftp爛掉喔~

沒有留言: