缘由

刚刚我想使用开源软件WinScp在Windows环境下通过sftp协议将远程的软件copy到本地,使用的是普通用户登录,登录进去后无法切换到root用户,所以在网上搜索下解决方案。

搜索方案

搜索解决方案时,按照WinSCP使用普通用户登录切换到root用户的方法 的说明可以实现将普通用户权限提升到root权限

解决步骤

查询sftp服务器路径
  • 使用普通用户权限ssh登录目标服务器,然后执行命令:cat /etc/ssh/sshd_config|grep sftp cat /etc/ssh/sshd_config|grep sftp

搜索方案

搜索解决方案时,按照WinSCP使用普通用户登录切换到root用户的方法 的说明可以实现将普通用户权限提升到root权限

解决步骤

查询sftp服务器路径

使用普通用户权限ssh登录目标服务器,然后执行命令:cat /etc/ssh/sshd_config|grep sftp cat /etc/ssh/sshd_config|grep sftp /profile/upload/2024/11/07/image_20241107201307A005.png

我的linux服务器结果是:Subsystem sftp /usr/libexec/openssh/sftp-server

WinScp设置

由上一步得知sftp服务器路径是/usr/libexec/openssh/sftp-server,所以需要在会话的->高级->环境->SFTP的SFTP服务器配置里输入:

sudo /usr/libexec/openssh/sftp-server

/profile/upload/2024/11/07/image_20241107201708A006.png

/profile/upload/2024/11/08/image_20241108104820A007.png

在高级站点设置对话框->Shell配置的Shell输入:sudo -i

"sudo -i"是以交互式的方式将环境变量设置为超级用户root的环境变量,它和"sudo su"是有区别的,后者仅仅是切换到超级用户root身份,但环境还是原来的。

/profile/upload/2024/11/08/image_20241108105610A008.png

登录

设置完后,输入主机、端口、用户名、密码就可以将WinScp切换至root的目录了