SCP
1、初识SCP
SCP是基于SSH(远程访问操作其他主机)实现远程文件传输的命令,我们可以使用SSH远程登陆其他主机,使用SCP命令将其他主机文件文件夹传输到本地或者将本地文件文件夹发送到远端,这对我们来说在工作中是非常便利的。
2、SSH的安装
安装命令:
sudo apt install -y openssh-server
3、使用前的准备工作
使用SSH来访问远程主机我们需要知道被访问主机的用户名以及被访问主机的IP地址,我们可以使用ifconfig命令来查询其IP地址。
注意:使用ifconfig命令时要安装net-tools,安装命令如下:
sudo apt-get install net-tools
查询你的IP地址,结果如下图所示下
红线标记处即为IP地址
4、SSH的使用
通过上面的几步,相信你已经做好了准备工作并懂得了如何获取IP地址,那么接下来我们就开始尝试使用SSH连接到远程主机吧。我们进行连接请求的命令格式为:ssh username@IP
当你第一次使用此命令时,系统会提示你是否要接受密钥登陆,这里我们选择yes(不明白什么是密钥登陆吗?别着急,在后面呢!)
当你输入yes并回车之后,它会提示你输入被访问主机用户的密码,我们输入密码后,我们就成功登入别人的电脑。
在这里我要访问的远程主机IP地址为192.168.1.111,用户名为qian,那么我们使用的命令就是
ssh qian@192.168.1.111
可以观察到,用户名已经由frank(我)变成qian(远程主机)了,这就说明我们的操作是成功的。
5.SSH密钥登录
还记得上面提到过的密钥登录吗?现在我就来为你解答,刚才我们经过一系列操作登录了别人家的电脑,我们刚才的登陆方式被称之为密码登录(你是否记得在某一步里我们需要输入远程主机的密码才能登陆),密钥登录比之密码登录更加的安全,密钥可以理解为被强化了n倍的密码,当你的账户密码过于简单时,很容易被人暴力破解,这样一来你的电脑内各种资料就会岌岌可危,这在一些公司里是致命的。
密钥分为公钥和私钥,他们的区别读者可以自行百度,在这里不过多赘述,只需要明白一点:私钥不可外泄、使用私钥可以更安全的登录配置了公钥的主机。
①生成密钥
我们需要再打开一个终端,在自己的电脑终端来下面执行指令
ssh-keygen -b 2048
其中 -b代表着生成一对钥匙(公钥和私钥) 2048则代表着钥匙的加密方式
接下来我们一路
回车,最终结果是下面这样的
上图被我用鼠标标记为高亮的id_rsa即为私钥,他在/home/frank/.ssh文件夹里
与之对应的公钥名为id_rsa.pub,同样位于/home/frank/.ssh文件夹中
我们进入.ssh文件夹,使用ll命令查看一下私钥的权限,这里要注意的是,私钥的权限只能我们自己有,当私钥权限不止我们拥有时,SSH会拒绝执行命令
②SCP初运用
听我啰里啰唆讲了这么多,接下来终于到了我们的重点环节:scp指令的运用
前面我们说过,要想使用密钥登陆远程主机,我们要把私钥拿在手里,把公钥发送到目标电脑上存入特定的位置,我们发送公钥使用的就是scp命令,将公钥发送到远程主机某一目录下的命令格式为:scp id_rsa.pub@IP:absolute path address
以我为例:id_rsa文件发送目的地为IP地址为192.168.1.111,用户名为qian的远程主机。我要将它存放到远程主机/home/qian/的目录下,那么我的指令就是
scp id_rsa.pub qian@192.168.1.111:/home/qian/
注意:此时我的终端位置处于id_rsa.pub所在的文件夹中
输入远程主机账户密码后,稍等片刻,公钥文件就发送到了远程主机,此时打开之前连接上了远程主机的终端,进入/home/qian/目录下,查看当前目录下的文件,会发现id_rsa.pub文件被传输了过来。
到目前为止,我们已经对scp的初步运用有了了解,但是对密钥登陆的配置还没完呢,刚才我仅仅将公钥发送到了远程主机,下一步还需要将远程主机上的公钥放在一个特殊的文件夹里,这个文件夹就是.ssh文件夹。
接下来,我在远程主机的/home/qian/目录下建立.ssh文件夹,进入.ssh文件夹,我们使用下面命令:
cat id_rsa.pub > .ssh/authorized_keys
这条指令的含义是,将id_rsa.pub文件里的内容写入.ssh文件夹内的suthorized_keys文件中,若原来.ssh下authorized_keys不存在,执行此命令后authorized_keys会自动创建。
现在,我们就可以使用密钥登陆了,如何验证呢?我关闭我的所有终端,然后在我电脑上打开一个新的终端,使用连接远程主机命令
ssh qian@192.168.1.111
这次我不需要输入密码就可以直接登录远程主机,这就代表着我们刚才的配置是成功的。
至此,实现scp传输文件以及配置SSH的操作我们已经完成了。
二、NFS
1、初识NFS
NFS就是Network File System的缩写,它最大的功能就是可以通过网络,让不同的机器、不同的操作系统可以共享彼此的文件。NFS服务器可以让PC将网络中的NFS服务器共享的目录挂载到本地端的文件系统中,而在本地端的系统中来看,那个远程主机的目录就好像是自己的一个磁盘分区一样,在使用上相当便利。
2、SSH的安装
安装命令:
sudo apt-get install nfs-kernel-server
sudo apt-get install nfs-common
3、配置工作
我们在根目录下创建nfs文件夹
sudo mkdir /nfs
然后我们更改一下它的权限
chmod -R 777 /nfs
chown -R nobody /nfs
接下来,我们进入/etc目录,用vim打开一个名为exports文档,此文档是用于添加我们想要共享的目录的,比如我们想将刚刚创立的/nfs目录作为共享目录,那么我们就可以将其写入此文档中,并且还可以在里面设置共享目录的权限,如下图所示
*:此共享目录对所有人开放
rw:共享目录可读可写
bo_subtree_check:即使输出目录是一个子目录,nfs服务器也不检查其父目录的权限,这样可以提高效率
no_root_squash:来访的root用户保持root帐号权限
接下来退出并保存此文档,我们需要重启一下nfs服务器使配置生效,命令如下:
service nfs-kernel-server restart
此时会提示我们输入密码,输入密码后重启完成,配置生效。我们查看一下nfs服务器的运行状态
service nfs-kernel-server status
这样就是启动成功了
4、NFS服务测试
到目前为止,我们就已经完成了所有对nfs服务器的配置,那么现在我们就要开始测试我们所配置的服务器究竟能不能用, 在这里有一点要特别注意,那就是使用nfs共享目录的两个或多个主机要同时存在于同一网段下
测试方法:我们使用主机,这里我同样使用上面我用过的另一台主机(因为在这里我将我自己的电脑作为了服务器端,所以别人通过安装了nfs客户端的主机输入指令后就可以查看我的共享目录了,注意:挂载是针对于客户端而言的,是客户端进行的操作) 在这里我在我自己的电脑上使用SSH远程访问别人的电脑,控制别人的电脑上nfs的客户端来将我们自己电脑上的共享目录挂载到别人电脑下的某一目录下,这样别人的电脑就可以通过访问他选择的挂载点来查看我们共享的内容 (绕口吗?仔细想想,你会有收获的) 我们使用的指令格式为:sudo mount -t nfs 服务器IP:共享目录地址 客户端挂载地址 -o nolock
我要访问的服务器IP为:192.168.1.108 共享目录所在地址为:/nfs 客户机挂载地址为:/mnt
那么我使用的指令就是
sudo mount -t nfs 192.168.1.108:/nfs /mnt -o nolock
客户端mnt目录原来为空目录,同时我在服务器端nfs目录下建立了一个test_nfs.txt文件,当我使用上述指令后,可以发现,在客户端mnt目录中出现了text_nfs.txt文件,这表明我们挂载成功,运行结果如下