Categories
學習筆記

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

如果你遇上的情况是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