SSHFS:在原始服务器上获取真实密码?

SSHFS:在原始服务器上获取真实密码?

我已通过 将我的一个生产服务器文件夹与我的“ssh 帐户”服务器连接起来sshfs

我经常需要在原始(生产)服务器上找出pwd(或realpath)文件,但 pwd 返回连接(“ssh 帐户”)服务器上文件的路径。

有没有办法获取原始路径?

谢谢

编辑:有关此内容的更多信息:我正在使用它将我的 ssh 服务器链接到多个不同的 SFTP 服务器/共享主机。

因此,如果我这样做(在某些服务器上):,sshfs user@domain:/ mount_point那么我将连接到我的 FTP 帐户,该帐户以 root 用户的身份运行,但更像是,/var/www/clients/c/a/account/pub/这就是我需要的路径 –

sshfs user@domain:/ mount_point # mount SFTP acc.
cd mount_point
XXXX file.ext # get back: /var/www/clients/…/pub/file.ext
pwd file.ext # returns /ssh-server/path/mount_point/file.ext

希望现在有意义了。

谢谢

答案1

您可以从 的输出中获取通过 sshfs 挂载的路径mount(或者简单地记住它)。然后您可以

  • 建立一个别名,该别名采用客户端上的路径,删除 SSHfs 的挂载点并在服务器上添加目录的原始名称。例如,如果您将远程目录/var/www/mywebsite本地挂载到/home/test/website( sshfs server:/var/www/mywebsite /home/test/website),则以下内容将起作用:

    $ alias mpwd="pwd | sed 's|^/home/test/website|/var/www/mywebsite|'"
    $ pwd
    /home/test/website
    $ mpwd
    /var/www/mywebsite
    $ cd gallery
    $ mpwd
    /var/www/mywebsite/gallery
    $ cd /etc
    $ mpwd
    /etc
    

    请注意不匹配的目录(/etc)并没有被破坏。

  • 将删除的目录挂载到本地的同一位置,即执行 sshfs 例如:sshfs server:/var/www/mywebsite /var/www/mywebsite。显然,目录必须存在于本地才能正常工作。

答案2

您不知道本地机器上导出/挂载的路径吗?挂载点下的所有路径不是都与“导出”路径相关吗?

sshfs [user@]host:[dir] mountpoint [options]

因此如果您在 [dir]/foo/bar 那么真实主机上的密码是 /[dir]/foo/bar。

如果您正在挂载主文件夹(如果没有 [dir],则为默认文件夹),并且它位于“自定义”位置,则可以像这样找出您的主路径:

$ ssh flode echo \$HOME
/home/pvv/d/rakhmato

...那么我在 mountpoint/moo/hei 中的内容实际上位于 /home/pvv/d/rakhmato/moo/hei

如果您要挂载的 [dir] 是另一个文件夹的别名 (mount -o bind),那么您可以通过查看 /etc/mtab 文件来找到原始路径。例如:

$ ssh localhost mount |grep '/media.*bind'
/mnt/media/media on /media type none (rw,bind)
/mnt/media/root-extension/usr/share/doc on /usr/share/doc type none (rw,bind)

...其中 localhost 是您的服务器名称,“/media”是您通过 sshfs 挂载的 [dir]。

相关内容