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. C++性能优化——能用array就不要用unordered_map作为查询表

    unordered_map需要哈希值计算和表查询的开销,当key值为整数且连续,直接用数组作为查询表具有更高的效率. #include <iostream> #include <ch ...

  2. CSS – Width & Height Auto and Percentage

    前言 这个非常基础, 我在学 W3Schools 之前就已经会了, 所以之前一直没用记入起来. 但偶尔遇到一些场景时还是会被坑到. 所以特别写这一篇, 提升记忆. width / height aut ...

  3. SpringMVC——SSM整合-异常处理器

    异常处理器 出现异常的常见位置与常见诱因: 框架内部抛出的异常:因使用不合规导致 数据层抛出异常:因外部服务器故障导致(例如:服务器访问超时) 业务层抛出的异常:因业务逻辑书写错误导致(例如:遍历业务 ...

  4. 项目实战:Qt+OSG爆破动力学仿真三维引擎测试工具v1.1.0(加载.K模型,子弹轨迹模拟动画,支持windows、linux、国产麒麟系统)

    需求   1.使用osg三维引擎进行动力学模型仿真性能测试:  2.打开动力学仿真模型文件,.k后缀的模型文件,测试加载解析过程:  3.解决第三方company的opengl制作的三维引擎,绘制面较 ...

  5. 如何快速定位 Linux Panic 出错的代码行

    问题描述 内核调试中最常见的一个问题是:内核Panic后,如何快速定位到出错的代码行? 就是这样一个常见的问题,面试过的大部分同学都未能很好地回答,这里希望能够做很彻底地解答. 问题分析 内核Pani ...

  6. 技术分享 | 徐轶韬:从MySQL5.7升级到MySQL 8.0

    在6月20日举办的[墨天轮数据库沙龙-MySQL 5.7 停服影响与应对方案]中,甲骨文MySQL解决方案首席工程师徐轶韬分享了<从MySQL5.7升级到MySQL 8.0>主题演讲,本文 ...

  7. 墨天轮最受DBA欢迎的数据库技术文档-监控篇

    好久不见,<墨天轮最受欢迎的技术文档>系列文章回归啦!本期主题数据库监控篇,希望能够帮助到大家!此外,为感谢大家支持,原文文末也给大家带来了返场福利,欢迎大家进入原文参与~ 数据库监控是许 ...

  8. yarn serve 开启项目服务失败 assets emit different content to the same filename

    error: answer: 删除public的文件,重新 yarn serve :

  9. 二、java之面向对象

    面向对象 面向对象编程(Object-Oriented Programming,OOP) 面向对象编程的本质就是:以类的方式组织代码,以对象的组织(封装)数据 三大特性: ◆封装 ◆◆封装的概念 程序 ...

  10. 题解:AT_abc370_c [ABC370C] Word Ladder

    题目传送门 luogu观看 简要题意 给两个序列 \(S\) 和 \(T\),输出的第一个数是它能改变的总个数,后面跟着的第 \(i\) 个是改变 \(i\) 个数之后,字典序最小的结果. 思路 当 ...