我正在使用以下命令将 ssh ubuntu 目录挂载到我的 ubuntu pc。
sshfs user@192.xx.xx.xx.xx:/dir/dir /home/username/mount/xxx
Run Code Online (Sandbox Code Playgroud)
我的问题是,我可以在我的桌面上为此创建一个脚本,当我需要安装驱动器时,我可以双击并运行此脚本,而无需始终手动输入命令。
我正在尝试使用 /etc/fstab 在两台 Ubuntu 机器之间建立 SSHFS 连接,以便它们从一开始就自动挂载。
我在两台机器的主目录中创建了一个 .ssh 目录,我创建了 id_dsa 和 id_dsa.pub 文件,并将密钥复制到每台机器的一个名为authorized_keys的文件中。我已将目录权限设置为 700,将文件设置为 600。
我已编辑 /etc/fuse.conf 以便取消注释 user_allow_other。
这是我在客户端计算机上的 /etc/fstab 中的条目格式,这是我从这里获得的:
sshfs#myname@www.myhome.com:/home/myname /mnt/sshfs/homebox fuse comment=sshfs,noauto,users,exec,uid=1000,gid=1000,allow_other,reconnect,transform_symlinks,BatchMode=yes 0 0
Run Code Online (Sandbox Code Playgroud)
但是,每当我尝试挂载服务器时,都会收到此错误:
fusermount: failed to open /etc/fuse.conf: Permission denied
fusermount: option allow_other only allowed if 'user_allow_other' is set in /etc/fuse.conf
Run Code Online (Sandbox Code Playgroud)
如前所述,我已经取消了 user_allow_other 的注释,所以这个错误更令人费解。
我还需要做什么?
我需要在我的服务器上本地编辑远程文件,所以我尝试/使用 SSHFS 在我的本地系统上挂载整个远程文件系统 ( ),如下所示:
$ sshfs username@domain.com:// /mnt -p 22
Run Code Online (Sandbox Code Playgroud)
然后它卡住了(光标闪烁,没有输出),所以很明显我用Ctrl+取消了它C。
在那之后,挂载点文件夹/mnt变得不可用,无法访问(你命名它)并且在任何尝试访问它时不断向我返回此错误消息:
fuse: bad mount point `/mnt': Transport endpoint is not connected
它在其父文件夹中采用了这种奇怪的外观:
$ ls -l /
...
d????????? ? ? ? ? ? mnt`
...
Run Code Online (Sandbox Code Playgroud)
我已经使用相同的 fstab 命令一段时间了:
sshfs#user@host.be:/home/user /home/user/vps fuse user,port=22,uid=1000,gid=1000,allow_other,reconnect,transform_symlinks 0 0
Run Code Online (Sandbox Code Playgroud)
它曾经工作得很好。
但是在 11.10 上它不再转换符号链接,它们都报告为损坏,即使该选项已明确设置。是什么赋予了?
我正在尝试允许我的笔记本电脑(Ubuntu 13.04)通过 SSHFS 访问我的 PC(Lubuntu 13.04)硬盘。我正在使用 RSA 密钥进行连接。
如果我在终端中输入它,它工作得很好:
sshfs my-PC:/a_folder /media/a_folder
Run Code Online (Sandbox Code Playgroud)
但是我希望它在我启动笔记本电脑时自动安装。所以我把自己加入了保险丝组:
sudo adduser mynickname fuse
Run Code Online (Sandbox Code Playgroud)
我将以下行添加到我的 fstab 文件中:
sshfs#mynickname@my-PC:/a_folder /media/a_folder fuse defaults,idmap=user,_netdev 0 0
Run Code Online (Sandbox Code Playgroud)
当我启动笔记本电脑时,a_folder 出现在设备列表中,但未安装。当我尝试通过 Nautilus 访问它时,它显示以下错误:
mount: only root can mount sshfs#mynickname@my-PC:/a_folder on /media/a_folder
Run Code Online (Sandbox Code Playgroud)
如果我尝试,我会得到同样的错误
mount /media/a_folder
Run Code Online (Sandbox Code Playgroud)
在一个终端。
如果我尝试
sudo mount /media/a_folder
Run Code Online (Sandbox Code Playgroud)
我得到
read: Connection reset by peer
Run Code Online (Sandbox Code Playgroud)
我尝试在 fstab 条目中添加“allow_other”作为选项,并在 /etc/fuse.conf 中取消注释相关行,但它没有改变任何内容。
用户“mynickname”是文件夹 /media/a_folder 的所有者,并具有 rwx 权限。
我在互联网上查看了许多关于有类似问题的人的帖子,但到目前为止没有任何效果。通常,人们甚至做不到
sshfs my-PC:/a_folder /media/a_folder
Run Code Online (Sandbox Code Playgroud)
没有出现错误,而这在我的笔记本电脑上运行良好。
任何见解和提示将不胜感激!谢谢。
编辑:我不久前解决了这个问题,但我忘了更新这篇文章。所以这是我的 fstab 中的内容:
sshfs#mynickname@my-PC:/a_folder /media/a_folder fuse noauto,_netdev,idmap=user,user,default_permissions 0 0
Run Code Online (Sandbox Code Playgroud)
如果我记得的话,要添加的关键选项是 default_permissions。我必须将 mynickname …
我正在使用带有reconnect属性的SSHFS 。当我暂停笔记本并重新启动它时,它工作正常。但问题是当我把笔记本带到某个地方时 - 意味着不同的 IP 和不同的连接(可能是 Wifi 或以太网)。
挂载的 SSHFS 文件夹只会冻结,还会冻结所有使用它的应用程序。到目前为止我唯一的解决方案是使用
sudo umount -f /mnt/sshfs_folder
Run Code Online (Sandbox Code Playgroud)
这远不是很好的解决方案,但到目前为止唯一有效的解决方案。有没有办法让 SSHFS 无缝地处理这个问题,这样挂起后改变网络连接就不会引起任何问题?
哦,我有 Ubuntu 14.04,但我想这是特定于 SSHFS 的。
如何使用 sshfs 通过无线网络挂载我的 Android 设备,以便我可以通过我的文件资源管理器或终端访问它的文件?
使用 SSHFS 在用户空间中挂载远程文件系统,我遇到的问题是,如果挂载的主机之一无法访问,所有 Nautilus 实例都会冻结。这个问题出现在 Nautilus 2.X 和 3.X 上,直到今天我才找到任何解决方案。这个问题使 SSHFS 几乎无法使用,至少使用不稳定的 WLAN 或类似的东西。这是鹦鹉螺的错误吗?任何人都可以确认这个问题,有解决方案吗?
我创建了一个密钥对以从 12.04 连接到 Synology 磁盘。部署完毕,编辑 ~/.ssh/config 自动使用。测试:
ssh user@remotesynology
Run Code Online (Sandbox Code Playgroud)
-> 就像一个魅力。在第二台远程机器上测试(运行 Ubuntu 服务器)-> 工作。
现在测试:
sshfs user@theubuntuserver: /home/user/ubuntuserver
Run Code Online (Sandbox Code Playgroud)
-> 作品
最后:
sshfs user@remotesynology: /home/user/remotesynology
Run Code Online (Sandbox Code Playgroud)
-> 错误:
read: Connection reset by peer
Run Code Online (Sandbox Code Playgroud)
我查看了这个问题,但这似乎并不适用(我在 fuse 组中有用户,并且它适用于另一台机器)并且我没有收到权限被拒绝的错误。
我想念什么?
我正在执行以下操作以将远程服务器安装到我服务器上的特定路径:
sshfs user@remoteserver.com:/backup/folder/ /home/myuser/server-backups/
Run Code Online (Sandbox Code Playgroud)
但是,当我挂载服务器时,文件夹权限会发生变化(它们变为 700),并且当我测试 rsnapshot.conf 文件时,出现以下错误:
snapshot_root /home/myuser/server-backups/ - snapshot_root exists \
but is not readable
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么 ?我应该用另一个用户安装远程服务器吗?