登录服务器想通过ssh下载个文件。使用SSH Secure File Transfer Client连接服务器,提示如下信息:
"File transfer server could not be started or it exited unexpectedly.
Exit value 0 was returned. Most likely the sftp-server is not in the path of the user on the server-side."
网上查了下,原来是用户主目录下的.bashrc文件的问题。
解决方法:
在bash的联机手册里有一段,说的是关于通过RSHD登录系统时,系统要执行.bashrc文件。而这个文件是在启动一个交互SHELL时才要执行的。而在SSH登录时,系统就要执行.bashrc文件。而SSH登录系统是非交互的。如果执行.bashrc文件时,产生输入与输出就会出在我遇到的这个问题。
解决办法是:在.bashrc文件中,测试一下是交互SHELL还是非交互的,如果是非交互的,则直接退出即可。
一般在.bashrc文件的最前边加入下面这行就可以了:
[ -z "$PS1" ] && return 经测试,我的服务器添加该命令可以传输文件。服务器系统:Centos 5
或者:
[ $- != *i* ] && return
解决办法是:在.bashrc文件中,测试一下是交互SHELL还是非交互的,如果是非交互的,则直接退出即可。
一般在.bashrc文件的最前边加入下面这行就可以了:
[ -z "$PS1" ] && return 经测试,我的服务器添加该命令可以传输文件。服务器系统:Centos 5
或者:
[ $- != *i* ] && return