最近我的工作电脑完全切换到 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-password
或PermitRootLogin no
。在这种情况下,你应该在服务器端做一些事情。听起来您已经有了 root 密码,所以这应该是可能的。
想法 1:确保文件归您的用户所有,或者至少是世界可读的。如果您需要将文件发送到目录,请确保这些目录归您的用户所有或全局可写。这是最好的解决方案,因为您不需要完全 root 权限即可进行简单的文件服务器访问。
想法 2:如果/etc/ssh/sshd_config
有PermitRootLogin prohibit-password
,将您的ssh
公钥 ( ~/.ssh/id_rsa.pub
) 添加到位于 的服务器中/root/.ssh/authorized_keys
。然后确保您的客户端 (Filezilla) 使用您的私有 ssh 密钥。
思路3:如果/etc/ssh/sshd_config
有PermitRootLogin no
,则改为PermitRootLigin prohibit-password
, sudo systemctl restart sshd
,然后继续思路2。
想法4:在 中/etc/ssh/sshd_config
,设置PermitRootLogin yes
然后sudo systemctl restart sshd
。然后您可以root
使用的密码以root
用户身份登录。这是最不安全的,因为人们可以尝试猜测密码。这也是最简单的解决方案。