NFS与SSH

Posted 生如夏花和秋叶

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了NFS与SSH相关的知识,希望对你有一定的参考价值。

(一)NFS

        NFS----Network File System,网络文件系统:通过网络让不同的机器不同的系统能够彼此分享数据,让应用程序在客户端通过网络访问位于服务器磁盘中的数据,是在类Unix系统之间实现磁盘文件共享的一种方法。基于RPC协议。

       NFS是一种文件存储,可以打开修改保存,相对于块存储(裸盘)和对象存储(如网盘,作为一个对象只能上传下载不能在网盘上修改)

1.NFS安装设置步骤-------服务端:

(1)安装(服务端客户端都要安装):

--------yum  install  rpcbind nfs-utils  -y       (安装2个包,先安装rpcbind包,nfs是基于这个包的,然后安装nfs-utils包)

(2)修改配置文件:

a.先建share目录,磁盘共享的位置或路径,并构建共享数据

-----mkdir   /share           -----touch /share/a.txt      -----echo ‘gongxiang‘  >a.txt         (最好给share单独挂载一个硬盘(mount  /dev/sdb   /share),专门存放共享数据)

b.改配置文件:

-----vim  /etc/exports

写入: /share   +服务端IP地址(rw,sync,fsid=0)      (rm,软件级别的读写权限,sync表示同步)

如:/share  192.168.72.0/24(rw,sync,fsid=0)      ip中0/24表示全段

(3)给共享文件操作系统级别的权限

-----chmod    -R  o+w  /share/       (-R 递归地给权限)

(4)启动服务(先启动RPC再启动NFS):

-----systemtcl  start rpcbind.service

-----systemctl start  nfs.service

设置为开机启动:

-----systemtcl  enable rpcbind.service

-----systemctl enable  nfs.service

(5)确认nfs是否启动成功:

-----rpcbind      (显示rpcbind信息)

-----exports     (查看共享信息)

/share   192.168.72.0/24

2.NFS安装设置步骤-------客户端:

(1)安装

--------yum  install  rpcbind nfs-utils  -y

(2)开启

-----systemtcl  start rpcbind.service

-----systemctl start  nfs.service

设置为开机启动:

-----systemtcl  enable rpcbind.service

-----systemctl enable  nfs.service

(3)检查NFS服务端是否有共享目录:

-----showmount   -e  +NFS服务器ip        (如-----showmount   -e  192.168.72.129)

显示:   /share  192.168.72.0/24 

(4)将服务端共享磁盘目录挂载到本地目录下   (NFS远程同步数据的关键一步)

-----mount  -t  nfs  192.168.72.129:/share       /usr/share/nginx/html/

在本地目录下就可以看到服务端/share下的内容,并可以改动

nginx的反向代理服务器与bfs服务器是同一个机器时:这样配置/etc/nginx/nginx.conf    (将默认的root根设为/shere)

http{

    upstream  pythonweb {                                   

          serve  192.168.72.130;

          serve  192.168.72.131;

         serve  192.168.72.132;                       

server {

       root  /share

}

 location   /   {

          proxy_pass http://pythonweb

}

(二)SSH服务

        Secure Shell的缩写。建立在应用层上的安全协议。目前较可靠,专为远程登陆会话服务和远程其他操作服务提供安全性的协议;2台机器都开启了sshd服务,可以互联;sshd默认端口号为22号端口。

      从客户端来说,SSH提供两种级别的安全验证:基于口令的安全验证和基于密钥的安全验证;

1.sshd的安装:默认已安装,默认已开启

------systemctl status sshd    检查是否开启sshd服务 

2.本机远程登陆对方机器(需知道对方账户名和密码):

-----ssh  +对方IP地址        (建立远程连接)

如:-----ssh 192.168.72.131 

------然后输入对方账户的密码

3.将本地文件复制到对方本地路径下   scp

-----scp  +  本地文件路径   +  对方电脑IP:/对方本地路径

如: -----scp   /etc/hosts   192.168.16.151:/temp

如果本地域名中有对方网址的域名解析,如pythonweb  192.168.16.151,也可以这样写

-----scp   /etc/hosts   python web:/temp

4.上面的3可以说是吧本地路径文件上传到远程路径文件,我们也可以在本地主机上从远程路径上下载文件到本地:

-----scp    +  对方电脑IP:/对方本地路径   +  本地文件路径

如:-----scp  192.168.16.151:/temp   /etc/hosts  

5.基于口令的验证每次都要输入口令,比较麻烦,我们来看一下在当前是客户端情况下SSH基于密钥的操作,在终端进行如下操作:

(1)建立钥匙和锁子

------ssh-keygen        (key是钥匙,gen是加密的意思)

------一路敲回车

钥匙和锁子已建立,在/root/.ssh/下

-----ls  /root/.ssh 

id_rsa   (钥匙)     id_ras.pub  (锁)   

(2)把锁子发到服务端就可以了

-----ssh-copy-id   -i   服务端IP

如: -----ssh-copy-id   -i  192.168.72.133

发了之后再服务端/root/.ssh下 就会有个authorized_keys文件,也就是客户端的id_rsa.pub在服务端/root/.ssh被重命名为authorized_keys。

6.SSH服务的配置文件

/etc/ssh/sshd_config

里面的port 22 默认端口可以改,比如改成8888了(改后把客户端服务端/root/.ssh里的文件删除),SSH服务操作就变成了:

-----ssh-keygen

-----ssh-copy-id -i id_rsa.pub 192.168.72.133  -p 8888                      (id_rsa.pub指定文件类型,-p端口号)

在操作第二步之前可以看下有没有8888这个端口:

-----systemctl restart sshd

-----netstate -an | grep 8888

以上是关于NFS与SSH的主要内容,如果未能解决你的问题,请参考以下文章

使用 SSH 和 NFS 在集群上进行并行化的最简单方法是啥?

共享 NFS 主目录上的无密码 ssh 不起作用(centos 7)[关闭]

ssh批量管理分发项目实战介绍与实践

Heartbeat+Haresources+NFS配置一个简单的HA高可用+资源共享集群

一键化部署rsync和nfs服务,挂载web服务器到nfs,实现共享目录和备份

SSH链接密钥部署