winscp:无法初始化SFTP协议。主机是SFTP服务器吗?

今天装了个CentOS 6.0的虚拟机,不知道是否因为选了“basic server”安装的原因

putty能够正常访问,但是用winscp连接是时候却出现了如下错误

“无法初始化SFTP协议。主机是SFTP服务器吗?”


到网上找也没找到一个可靠的解决方法,甚至下载了最新版本的winscp也照旧

后来在winscp官方网站看到有人说是不是协议没有选成sftp

但是看了我的却是已经默认选了sftp,而且,我也试过从另一个linux用scp命令是OK的


所以我试着把sftp换成scp协议,竟然成功了,接着上传文件也成功。


总结:具体原因未知,希望有高手知道的可以回复一下,谢谢

有碰到同样问题的也可以试一下我的办法


2011-11-10 补充 方案二
下载最新的openssh portable源码包,编译安装
此处必须用portable版本
并将旧的rpm包卸载:
rpm -e openssh openssh-server openssh-clients
rm -rf /etc/ssh
再源码安装
重新启动sshd,彻底解决问题。sftp协议又可以用了

方案二的方式在使用过程中发现还是有问题:
这个服务脚本不能通过chkconfig加入服务,所以不能开机启动
改了脚本可以启动了,也会总是报密码错误而无法登陆。但是重启sshd却又能登陆了

2011-11-14 补充 方案三
下载openssh 5.5的rpm源码包openssh-5.5p1-24.fc14.2.src.rpm

rpmbuild -D no_gtk2=1 -D skip_gnome_askpass=1 --rebuild openssh-5.5p1-24.fc14.2.src.rpm
# 再用rpm命令卸载旧版本
rpm -e openssh openssh-server openssh-clients
rm -rf /etc/ssh/
# 安装自己编译的版本
rpm -ivh /root/rpmbuild/RPMS/x86_64/openssh-5.5p1-24.el6.2.x86_64.rpm /root/rpmbuild/RPMS/x86_64/openssh-clients-5.5p1-24.el6.2.x86_64.rpm /root/rpmbuild/RPMS/x86_64/openssh-server-5.5p1-24.el6.2.x86_64.rpm /root/rpmbuild/RPMS/x86_64/openssh-ldap-5.5p1-24.el6.2.x86_64.rpm /root/rpmbuild/RPMS/x86_64/pam_ssh_agent_auth-0.9.2-26.24.el6.2.x86_64.rpm
# 重启sshd
service sshd restart

2011-11-14 补充 方案四
这是从新浪学来的一个非常规的办法,具体方法如下
修改 /etc/ssh/sshd_config,将
Subsystem       sftp    /usr/libexec/openssh/sftp-server

修改为:
Subsystem       sftp    /usr/lib/openssh/sftp-server
/usr/lib/openssh/sftp-server是一个不存在路径
这样的结果是导致无法启动sftp,导致用其它方式代替,比如scp

# 删除旧key
vi -f /etc/ssh/ssh_host_*
# 重启sshd
service sshd restart

这样winscp也能连接上,但是肯定不是用的sftp协议


评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值