具有 sudo 功能的 Ubuntu SFTP 客户端

具有 sudo 功能的 Ubuntu SFTP 客户端

最近我的工作电脑完全切换到 Ubuntu。但我有一个问题。在 Windows 上,我使用 WinSCP 通过 SFTP 连接以删除开发服务器,但我找不到任何适用于我的 Ubuntu 应用程序。问题不在于 SFTP 本身 - 我可以毫无问题地连接到服务器 - 但是我需要以非特权用户身份登录,然后运行 ​​sudo 才能遍历到我的非特权用户无法访问的目录。

在 WinSCP 中我可以配置我的WinSCP服务器作为sudo su -c /bin/sftp-server和作为我不得不把sudo su -.

有没有任何应用程序可以像 Windows 上的 WinSCP 一样连接到 SFTP?

答案1

如果您喜欢 WinSCP 的 GUI 特性,请尝试 Filezilla 之类的工具。它可以在 ubuntu 上使用sudo apt install filezilla.支持SFTP协议。

就能够访问您需要的文件而言,这是一个服务器配置问题。如果只能通过 访问root,则只需sftp以 user身份访问root

这可能行不通。服务器通常sshd配置为PermitRootLogin prohibit-passwordPermitRootLogin no。在这种情况下,你应该在服务器端做一些事情。听起来您已经有了 root 密码,所以这应该是可能的。

想法 1:确保文件归您的用户所有,或者至少是世界可读的。如果您需要将文件发送到目录,请确保这些目录归您的用户所有或全局可写。这是最好的解决方案,因为您不需要完全 root 权限即可进行简单的文件服务器访问。

想法 2:如果/etc/ssh/sshd_configPermitRootLogin prohibit-password,将您的ssh公钥 ( ~/.ssh/id_rsa.pub) 添加到位于 的服务器中/root/.ssh/authorized_keys。然后确保您的客户端 (Filezilla) 使用您的私有 ssh 密钥。

思路3:如果/etc/ssh/sshd_configPermitRootLogin no,则改为PermitRootLigin prohibit-password, sudo systemctl restart sshd,然后继续思路2。

想法4:在 中/etc/ssh/sshd_config,设置PermitRootLogin yes然后sudo systemctl restart sshd。然后您可以root使用的密码以root用户身份登录。这是最不安全的,因为人们可以尝试猜测密码。这也是最简单的解决方案。

相关内容