SSHFS(Secure SHell FileSystem)是一个客户端,可以让我们通过 SSH 文件传输协议(SFTP)挂载远程的文件系统并且在本地机器上和远程的目录和文件进行交互。

SFTP 是一种通过 SSH 协议提供文件访问、文件传输和文件管理功能的安全文件传输协议。因为 SSH 在网络中从一台电脑到另一台电脑传输文件的时候使用数据加密通道,并且 SSHFS 内置在 FUSE(用户空间的文件系统)内核模块,允许任何非特权用户在不修改内核代码的情况下创建他们自己的文件系统。

1.安装SSHFS

# yum install sshfs

# dnf install sshfs              【在 Fedora 22+ 发行版上】

# sudo apt-get install sshfs     【基于 Debian/Ubuntu 的系统】

2.创建SSHFS挂载目录

# mkdir /mnt/tecmint
$ sudo mkdir /mnt/tecmint 【基于 Debian/Ubuntu 的系统】

3.挂载

当你已经创建你的挂载点目录之后,现在使用 root 用户运行下面的命令行,在 /mnt/tecmint 目录下挂载远程的文件系统。视你的情况挂载目录可以是任何目录。

下面的命令行将会在本地的 /mnt/tecmint 目录下挂载一个叫远程的一个 /home/tecmint 目录。(不要忘了使用你的 IP 地址和挂载点替换 x.x.x.x)。

# sshfs tecmint@x.x.x.x:/home/tecmint/ /mnt/tecmint
$ sudo sshfs -o allow_other tecmint@x.x.x.x:/home/tecmint/ /mnt/tecmint
【基于 Debian/Ubuntu 的系统】

如果端口不是默认的22,则需要指定端口
-p 22000
$ sudo sshfs -o allow_other -p 22000 tecmint@x.x.x.x:/home/tecmint/ /mnt/tecmint   

如果你的 Linux 服务器配置为基于 SSH 密钥授权,那么你将需要使用如下所示的命令行指定你的公共密钥的路径。

# sshfs -o IdentityFile=~/.ssh/id_rsa tecmint@x.x.x.x:/home/tecmint/ /mnt/tecmint
$ sudo sshfs -o allow_other,IdentityFile=~/.ssh/id_rsa tecmint@x.x.x.x:/home/tecmint/ /mnt/tecmint 【基于 Debian/Ubuntu 的系统】

4.验证挂载是否成功

如果你已经成功的运行了上面的命令并且没有任何错误,你将会看到挂载在 /mnt/tecmint 目录下的远程的文件和目录的列表

5.使用df -hT检查挂载点

# df -hT

将会显示远程文件系统的挂载点

6.永久挂载远程文件系统

为了永久的挂载远程的文件系统,你需要修改一个叫 /etc/fstab 的文件。照着做,使用你最喜欢的编辑器打开文件

# vi /etc/fstab
$ sudo vi /etc/fstab 【基于 Debian/Ubuntu 的系统】

移动到文件的底部并且添加下面的一行,保存文件并退出。下面条目表示使用默认的设置挂载远程的文件系统。

sshfs#tecmint@x.x.x.x:/home/tecmint/ /mnt/tecmint fuse.sshfs defaults 0 0

如果你的服务器配置为基于 SSH 密钥的认证方式,请加入如下行:

sshfs#tecmint@x.x.x.x:/home/tecmint/ /mnt/tecmint fuse.sshfs IdentityFile=~/.ssh/id_rsa defaults 0 0

接下来,你需要更新 fstab 文件使修改生效。

# mount -a
$ sudo mount -a 【基于 Debian/Ubuntu 的系统

7.卸载远程的文件系统

# umount /mnt/tecmint

如果想要使用密钥登录:

  1.在挂载机上生成密钥对

ssh-keygen -t rsa

  2.将公钥复制到服务器上

ssh-copy-id -i ~/.ssh/id_rsa.pub  root@xx.xx.xx.xx

  3.验证

ssh root@xx.xx.xx.xx

添加开机自自动挂载:

[root@mgr03 ~]# cat /usr/lib/systemd/system/sshfs-diankezk.service
[Unit]
Description=SSHFS MOUNT mgr02 10.0.0.7
After=sshd.service [Service]
Type=forking
ExecStart=/usr/bin/sshfs 10.0.0.7:/data1 /mnt -o reconnect -o cache=yes -o allow_other
ExecStop=/usr/bin/umount /mnt [Install]
WantedBy=multi-user.target

开启:

systemctl enable sshfs-diankezk.service 

常见问题:

1.目标服务器升级重启之后, 日志挂载失效

解决方案:

1.卸载之前的挂载
umount file_dir 2. 重新挂载还是错误read: Connection reset by peer
使用调试模式 查看错误信息
sshfs -o reconnect 111.1.11.111:/opt/logs /data/logs -o debug -o sshfs_debug
-o debug
-o sshfs_debug 原来是证书发生了变化 ,需要更新证书 删除老的证书:
ssh-keygen -f "/root/.ssh/known_hosts" -R 111.11.11.111
或者直接在文件中找到该ip地址删除即可 然后使用挂载命令重新挂载即可, 然后重新输入命令

2.安装sshfs报没有可用的安装包

原因: 默认源没有该工具, 需要先安装epel源

yum install -y epel-release

yum install -y sshfs

#yum -y install fuse-sshfs

Linux之远程挂载SSHFS的更多相关文章

  1. linux nfs远程挂载和卸载

    一.nfs远程挂载 1.首先确定服务端(实体挂载节点)的IP 2.通过cat  /etc/hosts 查看服务端的server name 3.mount -t nfs servername:/挂载文件 ...

  2. Linux上利用NFS实现远程挂载

    两台服务器 192.168.1.1 [WEB服务器] 192.168.1.2 [录音服务器] 说明 在192.168.1.2服务器上每天有许多录音文件生成,192.168.1.1作为WEB服务器,里面 ...

  3. Linux远程挂载目录

    Linun远程挂载文件目录 需求:有两台服务器,一个是nginx,一台服务器是weblogic,图片上传到weblogic服务器上,但是需要nginx做代理,可是nginx访问不到weblogic服务 ...

  4. Linux 阿里云挂载新分区

    阿里云服务器可以自己购买数据盘并挂载使用,虽然官方也提供了挂载的教程,但是还是有些朋友不清楚其中的细节,为此,我在这里来给大家分享一下详细的挂载办法. 工具/原料 已经购买开通阿里云服务器,并且在开通 ...

  5. linux系统usb挂载

    本次例程的环境是在FC6下,通过终端操作的. 注意要挂载U盘需要有管理员的权限. 切换成管理员,输入: su root 然后输入管理员密码,进行密码认证: 成功后,先在 /mnt 下建立一个名叫USB ...

  6. Linux下磁盘挂载

    公司硬盘不够用了,新买了一个存储,需要挂载到现在的系统上.前期的步骤就不说了,运维全部搞定,无非是硬件和网络那一套,这里只说分配到本人后在Linux下如何挂载. 具体步骤如下: 1.查看是否已经分配 ...

  7. 在linux终端远程登陆linux服务器

    在linux终端远程登陆linux服务器   原来在Linux终端远程登陆linux服务器是那么的容易,如果的服务器用户名是abc(也可以是root),只需要在终端输入: 然后电脑会提示输入密码就登录 ...

  8. 如何通过linux ssh远程linux不用输入密码登入

    如何通过一台linux ssh远程其他linux服务器时,不要输入密码,可以自动登入.提高远程效率,不用记忆各台服务器的密码. 工具/原料   ssh,ssh-keygen,scp 方法/步骤   首 ...

  9. linux下的挂载点和分区是什么关系

    Linux 使用字母和数字的组合来指代磁盘分区.这可能有些使人迷惑不解,特别是如果你以前使用“C 驱动器”这种方法来指代硬盘及它们的分区.在 DOS/Windows 的世界里,分区是用下列方法命名的: ...

  10. Linux scp 远程文件/目录传输

    Linux scp远程文件/目录传输 1.获取远程服务器上的文件 scp -P 22 root@www.test.com:/root/test.tar.gz /home/test.tar.gz 上端口 ...

随机推荐

  1. [Udemy] AWS Certified Data Analytics Specialty - 3.Processing

    Lambda Lambda 经常起胶水的作用,就是粘合不同的service. 如下图例子 另外Requirement #1 也是一个例子,还有Requirement #3 除了Kinesis Data ...

  2. TextIn文档树引擎,助力RAG知识库问答检索召回能力提升

    ​ TextIn团队的文档解析测评工具Markdown Tester在Github发布后,我们陆续与大家探讨了目前业内对PDF解析工作的评判标准与我们各项测评指标的设计原理,包括段落.表格.公式.阅读 ...

  3. CSS & JS Effect – Hamburger Menu

    效果 参考: Youtube – Responsive Navigation Menu Bar + Hamburger Menu Toggle - Only with CSS Youtube – Ma ...

  4. Vue3——集成 sass

    安装 sass npm install sass sass-loader -D 使用 scss 语法!!!需要加上 lang="scss" <style scoped lan ...

  5. Windows安装Powershell7.x

    事件起因: 由于需要运行一个脚本,但是该脚本是广大网友群众使用Powershell7写的,我自带的是Powershell5,运行过程中总是出现莫名其妙的问题,于是决定将Powershell升级到Pow ...

  6. T2回家(home)题解

    T2回家(home) 现在啥也不是了,虽然会了逆元,但是对期望概率题还是一窍不通,赛时相当于只推出了 \(n=1\) 的情况,结果运用到所有情况,理所应当只有20分. 题目描述 小Z是个路痴.有一天小 ...

  7. .NET 代码混淆工具-JIEJIE.NET

    前言 JIEJIE.NET是一款强大的开源.NET程序集混淆工具.它利用深度加密技术和多样化的混淆策略,有效地保护了.NET软件的版权和源代码安全,防止未经授权的访问和篡改. 项目介绍 JIEJIE. ...

  8. USB总线-Linux内核USB设备驱动ftrace分析(十一)

    1.简介 USB Gadget Driver定义了很多trace event,使用者可以在用户空间通过ftrace接口,追踪USB Gadget Driver的行为. USB设备控制器驱动定义的tra ...

  9. Java日期时间API系列33-----Jdk8中java.time包中的新的日期时间API类应用,格式化常用模板大全,新增Excel常用格式。

    从Java日期时间API系列10-----Jdk8中java.time包中的新的日期时间API类的DateTimeFormatter中可以知道常用字符有超过20几种,各种组合结果非常多.但常用的组合就 ...

  10. DOMException: Failed to execute 'setRequestHeader' on 'XMLHttpRequest': 'function (header, parser) { header = normalizeHeader(header);

    场景:token过期,然后更新了token 重新发起请求获取数据 : 代码:使用上一次的错误请求配置报错     return request(error.config) : 解决 :  return ...