当前位置: 首页>>技术教程>>正文


使用SSH挂载远程目录

, , ,

问题描述

如何使用SSH安装远程目录,使其与本地目录一样可用?

最佳解决方法

首先安装模块:

sudo apt-get install sshfs

将其加载到内核

sudo modprobe fuse

设置权限

sudo adduser $USER fuse

sudo chown root:fuse /dev/fuse

sudo chmod +x /dev/fusermount

现在我们将创建一个目录来安装远程文件夹。

我选择在我的主目录中创建它并将其命名为remoteDir。

mkdir ~/remoteDir

现在我运行命令来安装它(mount在home上)。

sshfs maythux@192.168.xx.xx:/home/maythuxServ/Mounted ~/remoteDir

现在它应该被安装

cd ~/remoteDir
ls -l 

请享用

次佳解决方法

配置ssh key-based身份验证

在本地主机上生成密钥对。

$ ssh-keygen -t rsa

使用回车键接受所有sugestions。

将公钥复制到远程主机:

$ ssh-copy-id -i .ssh/id_rsa.pub user@host

安装sshfs

$ sudo apt install sshfs

挂载远程目录

$ sshfs user@host:/remote_directory /local_directory

不要尝试将远程fs添加到/etc /fstab

或者不要尝试通过/etc/rc.local挂载共享。

在这两种情况下,当init读取/etc /fstab时,网络不可用,它将无法工作。

安装AutoFS

$ sudo apt install autofs

编辑/etc/auto.master

注释掉以下几行

#+/etc/auto.master.d
#+/etc/auto.master

添加新行

/- /etc/auto.sshfs --timeout=30

保存并退出

编辑/etc/auto.sshfs

添加新行

/local_directory -fstype=fuse,allow_other,IdentityFile=/local_private_key :sshfs\#user@remote_host\:/remote_directory

远程用户名是强制性的。

保存并退出

在调试模式下启动autofs

$ sudo service autofs stop
$ sudo automount -vf

观察远程ssh服务器的日志

$ ssh user@remote_server
$ sudo tailf /var/log/secure

检查本地目录的内容

您应该看到远程目录的内容

在正常模式下启动autofs

使用CTRL-C停止在调试模式下运行AutoFS。

在正常模式下启动AutoFS

$ sudo service autofs start

请享用

(在Ubuntu 14.04上测试过)

第三种解决方法

安装sshfs

sudo apt-get install sshfs

添加到fstab:

<USER>@<SERVER_NAME>:<server_path> <local_path> fuse.sshfs delay_connect,_netdev,user,idmap=user,transform_symlinks,identityfile=/home/<YOUR_USER_NAME>/.ssh/id_rsa,allow_other,default_permissions,rw,nosuid,nodev,uid=1000,gid=1000,nonempty 0 0

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/1920.html,未经允许,请勿转载。