概述
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文件,这表明我们挂载成功,运行结果如下
看到这里,恭喜你,你又学会了一种互传文件的办法!
三、TFTP
1、TFTP简介
TFTP(Trivial File Transfer Protocol,简单文件传输协议)是TCP/IP协议族中的一个用来在客户机与服务器之间进行简单文件传输的协议,提供不复杂、开销不大的文件传输服务。
2、安装客户端与服务端
sudo apt install -y tftpd-hpa sudo apt install -y tftp-hpd
其中tftpd-hpa为服务器端,tftp-hpd为客户端
3、配置服务器端
我们首先找到tftp服务器的配置文件,它位于/etc/default/tftpd-hpa,用vim打开,我们将其配置为
TFTP_USERNAME="tftp" TFTP_DIRECTORY="/mnt/tftp" TFTP_ADDRESS="0.0.0.0:69" TFTP_OPTIONS="-l -c -s"
接下来我们创立文件目录 /mnt/tftp,使用指令更改其权限,使其可以被更宽泛的访问(共享文件权限开放度高,但最好只是临时使用):
sudo chmod -R 777 /tftp sudo chown -R nobody /tftp
配置好之后,我们使用指令重新启动一下服务器
sudo service tftpd-hpa restart
我们查看一下服务器状态,如下图所示即为成功
4、测试运行
我们在服务器端/mnt/tftp文件夹中创建一个text_tftp.txt测试文档,使用另一台机器( 注意:要和服务器主机在同一局域网下,并且安装了tftp客户端)。运行下列命令
tftp 服务器IP
在这里我要访问的服务器IP为:192.168.1.108,于是我应该执行
tftp 192.168.1.108
我们进入以下界面
我们就可以进行下载(get),传输(put)指令了,我们下载一下测试文件,键入 get 文件名 即可 运行完下载命令之后,我们键入q退出客户端,进入/mnt目录,你会发现,test_tftp.txt文件安静的躺在那里
四、使nfs mount永久生效
若要使nfs mount永久生效,我们需要修改/etc/fstab文件内的相关配置,此文件里面存储的是系统启动时自动挂载的所有文件系统,我们要小心配置。 我们打开此文件,在其中添加以下内容:
服务器IP地址:共享目录地址 客户端挂载地址 版本 defaults 0 0
保存此配置,下一次你开机时共享文件夹就会自动挂载。
最后
以上就是舒服银耳汤为你收集整理的上机作业19SCP二、NFS三、TFTP四、使nfs mount永久生效的全部内容,希望文章能够帮你解决上机作业19SCP二、NFS三、TFTP四、使nfs mount永久生效所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复