linux一般为了安全,都会禁止root账户直接登陆ssh,但是用普通用户在打开winscp会话后无法通过su获得root权限,
上传文件的过程中会出现permission denied的提示,说用户无权限访问 错误返回码为3
(你也可以提高普通用户的权限,但并不推荐这样做)。所以在开始会话前就要通过sudo命令切换到root用户。
首先,新建会话的时候协议要选择SFTP或SCP,因为FTP协议不支持这个功能。
查找sftp-server 文件夹所在的系统路径
首先输入 su 命令,接着输入ROOT管理员密码回车 或 sudo -i获取 权限
cat /etc/ssh/sshd_config | grep sftp
会有如下输出
[root@instance-1 ~]# cat /etc/ssh/sshd_config | grep sftp Subsystem sftp /usr/libexec/openssh/sftp-server /usr/libexec/openssh/sftp-server即我们需要的路径 得到sftp-server文件路径后 修改sudo文件,给普通用户权限 [root@xjj ~]# vim /etc/sudoers ## Allow root to run any commands anywhere root ALL=(ALL) ALL xjj ALL=NOPASSWD /usr/libexec/openssh/sftp-server#加入此行(括号内为注释不要复制进去 xjj为普通用户的用户名,ALL=NOPASSWD为权限,/usr/libexec/openssh/sftp-server为sftp路径) #Defaults requiretty #注释掉此行,不然会报错(最前面加#号)
注释以上语句##在文本中找到下语句(没有则添加)
root ALL=(ALL) ALL
插入模式,在root ALL=(ALL)
ALL结尾处按回车在其下面增加以下语句(xjj是普通用户名,改成你自己的!)
xjj ALL=NOPASSWD /usr/libexec/openssh/sftp-server
保存退出后 source下修改的文件,使其立即生效。(必须要做不然报错)
source /etc/sudoers
在winscp端进行连接设置
设置好主机名,端口号,用户名,密码之后点击高级

设置SFTP 将你最上面的路径 /usr/libexec/openssh/sftp-server 填入

设置 Shell

确定保存后就可以登陆,然后进行文件上传了
允许随意转载;但,请点赞!点赞-NMBHOST:NMB HOST » Linux VPS禁止ROOT账户登陆后Winscp无法上传文件
这个可以,给小朋友下载
文章改变了哦