WinSCP下su切换到root的技巧(禁止root远程ssh登录时)
在实验室与服务器传输文件时一般使用的都是WinSCP这个开源软件,界面友好而且自带中文。我们的服务器早先安全意识较差,开放了root的ssh远程登录,虽然有安全隐患,但倒也方便。
后来老师突发奇想,限制了root用户的远程登录,但是重要的数据文件都是700,这可害苦了我们,每次只有先用普通账户登录,然后再su到root下。这也就算了,更可悲的是,WinSCP完全失去了用武之地。因为root账户无法登陆,而像是FTP,SFTP,SCP这些协议都不支持在登录以后切换用户。
不过天无绝人之路,某C很快在WInSCP官网的FAQ里找到了这个网页:
SCP协议在登录的时候可以指定shell,一般默认的也就是推荐的是/bin/bash,但是我们可以修改它来玩花样,比如改成sudo su -
但是问题又来了,sudo需要输入密码,但是WinSCP在登录的时候并没有交互过程。聪明的你一定已经想到了,只要在root权限下visudo,添加如下一行即可取消sudu时的密码:
yourusername ALL=NOPASSWD: ALL
为了可以在非tty的环境下sudo,我们还需要注释掉下面一行:
Defaults requiretty
然后保存,即可在登录到WinSCP的时候享受root的快感啦!
总而言之,有以下几步:
1.普通用户ssh到服务器,切换到root权限
2.visudo,然后添加 yourusername ALL=NOPASSWD: ALL 这一行,注释掉Defaults requiretty
3.修改WinSCP的文件协议为SCP
4.修改环境-SCP/Shell下的shell为sudo su-
5.登录WinSCP即可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构