登录服务器想通过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
转载于:https://blog.51cto.com/qingwang/925565
本文介绍了一种在使用SSH进行文件传输时遇到的问题及其解决方法。主要问题是由于服务器的.bashrc文件设置不当导致文件传输失败。解决方案是在.bashrc文件中添加特定命令来判断是否为交互式shell,并在非交互式情况下直接返回。

780

被折叠的 条评论
为什么被折叠?



