问题说明
在做项目是的时候,使用winscp上传文件到linux服务器时,出现permission denied的提示,并且错误的返回码是3。错误图如下:
从上面的错误中可以看出,文件上传失败是因为权限不足,因为我们连接到服务器是以普通用户连接的所以会权限不足,解决办法是以root用户连接服务器,这样就有权限上传文件了,那么怎么以root用户连接服务器了?下面我们一起来看一下吧!
解决办法
1、查看sftp服务在你服务器的路径
在服务器使用命令:cat /etc/ssh/sshd_config | grep sftp
我的服务器输出结果:Subsystem sftp /usr/libexec/openssh/sftp-server
2、在winSCP进行连接设置
设置好你的主机名、端口、用户名和密码,如果你不是使用密码登录,而是使用密钥登录,那么就不用填写密码,然后点击高级,点击SFTP,出现如下界面:
如上图设置sftp,只需要在sftp服务器填入 sudo /usr/libexec/openssh/sftp-server,sudo后面的类容是第一步我们通过运行cat /etc/ssh/sshd_config | grep sftp得到的sftp服务路径。填好sftp服务器后,点击shell,出现如下界面:
如上图设置shell,在shell里面填入sudo -i即可。如果你是使用的密钥登录,那么还需要点击SSH下的验证,出现如下界面:
然后选择密钥文件。点击确定,点击登录连接到服务器,到此我们就以root用户连接到了服务器,这时候我们就可以正常的上传文件了。