Categories
學習筆記

SSH可以登录但SFTP无法登录的解决办法

FlashFXP无法登录SSH
WinSCP无法登录SSH
如果你遇上的情况是root账户登录ssh没问题,但是sftp登录失败的情况的话,恭喜你,你应该来对地方啦,哈。

解决办法如下:
1 登录ssh
2 用vi打開.bashrc文件

vi /root/.bashrc

3 在编辑器中输入a开始编辑 在最前面加入

[ -z "$PS1" ] && return

4 Ctrl+C 退出编辑 然后输入:wq保存退出
5 再试试SFTP是否正常 嘿嘿

罪魁祸首就是.bashrc文件。
在bash的联机手册里有一段,说的是关于通过RSHD登录系统时,系统要执行.bashrc文件。而这个文件是在启动一个交互SHELL时才要执行的。而在SSH登录时,系统就要执行.bashrc文件。而SSH登录系统是非交互的。如果执行.bashrc文件时,产生输入与输出就会出在我遇到的这个问题。
解决办法是:在.bashrc文件中,测试一下是交互SHELL还是非交互的,如果是非交互的,则直接退出即可。
一般在.bashrc文件的最前边加入下面这行就可以了:
[ -z " $PS1" ] && return
或者:
[ $- != *i* ] && return

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.