我如何 scp 到我没有密码的用户?

Joh*_*one 4 unix sftp

这是情况。我拥有对服务器的用户访问权限和对同一服务器的 root 访问权限。我想为在服务器上没有密码信息的用户编辑文件。以 root 身份 ssh 被禁用,所以我通常以我的用户身份 ssh,然后 su 到 root。然后我 cd 到感兴趣的用户的主目录,然后 su 到感兴趣的用户(前提是感兴趣的用户具有 shell 访问权限)。如果用户没有对服务器的 shell 访问权限,我将被迫以 root 身份修改文件,而我不愿意这样做。所以我的第一个问题是,如果用户没有 shell 访问权限,我如何在没有 root 权限的情况下安全地修改用户的文件?

我的第二个问题涉及使用图形SFTP程序从我的桌面将文件传输到用户的帐户。由于我没有感兴趣的用户的登录信息(并且该用户可能没有 shell 访问权限),我无法直接 sftp 进入用户的帐户,也无法以 root 身份进行 sftp。因此,我使用图形 SFTP 程序将 sftp 发送到服务器上我的用户帐户的主目录。然后我通过 SFTP 程序将文件传输到服务器上我的用户帐户的主目录,然后以 root 用户的身份手动将它们从我的用户的主目录复制到感兴趣的用户的主目录。显然这是低效的,我渴望更好的解决方案。它是什么?

注意:我意识到我可以使用命令行scp程序将文件直接传输到感兴趣的用户主目录,但我想使用图形 SFTP 程序。

Bre*_*nt 12

在您自己的机器上设置 rsa/dsa 密钥对 (ssh-keygen -t rsa),然后将公钥附加到相关用户的 ~/.ssh/authorized_keys 文件中。如果 ~/.ssh 不存在 - 使用用户拥有的 700 权限创建它。

然后您应该能够仅使用密钥(无密码)以该用户身份登录


Unk*_*own 5

http://winscp.net/eng/docs/faq_su

WinSCP 支持的任何协议(SFTP、FTP 和 SCP)都不允许在文件传输会话中途更改用户。您需要使用正确的用户启动会话。

在某些情况下(使用 Unix/Linux 服务器),您可以在登录后直接使用 sudo 命令来更改用户,在文件传输会话开始之前。

SFTP 和 SCP 协议允许这样做,但实际方法取决于平台。