Linux系统之间的文件共享

1 scp命令

1. 需要输入密码:
$ cd cd /home/tony/.ssh/
$ scp id_rsa.pub root@172.17.12.57:/root/.ssh/authorized_keys
(然后输入172.17.12.57那台机器下的root密码,便可以传输文件id_rsa.pub
到,远程机器/root/.ssh/下,并改名为authorized_keys)

2. 不需要输入密码:
***不需要输入密码,就需要在两台机器之间建立信任关系:把本地主机用户的ssh
公匙文件复制到远程主机用户的~/.ssh/authorized_keys***
$ ssh-keygen
(一路回车下去,然后会在/home/tony/.ssh/目录下生成id_rsa和id_rsa.pub
两个文件,然后将id_rsa.pub文件传输到远程机。)
$ scp /home/tony/.ssh/id_rsa.pub root@172.17.12.57:/root/.ssh/
(实现了将id_rsa.pub传输到远程机器的/root/.ssh/目录下)
$ ssh root@172.17.12.57
(输入密码后,便可以通过ssh登录到远程机器,并且用root用户登录,这里如果直
接输入ssh 172.17.12.57登录,是用默认的tony用户登录的,原来是不需要
putty软件的啊,原来telnet和ssh是一样啊)
# cd .ssh
# mv id_rsa.pub authorized_keys
(这条命令执行过后,在exit出来后,会发现ssh root@172.17.12.57不再需要
密码了,从此scp的操作也不再需要密码了,原来scp就是ssh copy 的简写啊,
乱说的,没经过考证)
***疑问:不知道为什么,我用ssh-keygen -f 生成对应的文件,复制过去却不管
用***

3. 多台机器拥有一台机器的认证
基本操作同上类似,但是进入到远程主机的.ssh/目录下有两种可供选择的:
a. # cat id_rsa.pub >> authorized_keys
(显示的,这是一种追加形式,可以满足要求)
b. # mv id_rsa.pub authorized_keys2
(这个不错啊,笔者本人也是蛮喜欢这种方式的)

4. scp -p
scp -p 这个操作还是蛮有用的,可以保持文件属性不变。
$ scp -p root@172.17.12.57:/root/scrun.log .
(复制了远程机器上的scrun.log到当前目录下".",并且文件属性没有改变哦,
创建时间之类的都没改变啊)

5. scp -r
scp -r 这个r选项大家应该是熟悉的吧,不熟悉,自己骂自己一直在干嘛吧,r显示是
recursion即递归的意思啊,cp操作中都带的,想必也是很容易猜测r在这里是什
么意思吧,是可以传递文件夹(夹带了文件的传输哦)

$ scp -r SVN/ root@172.17.12.57:/root/
(OK, 传输成功了)

2 ftp命令

2.1 FTP介绍

FTP(文件传输协议)是用于与远程网络之间传输文件的标准网络协议。 基于C/S结构。

数据传输格式:二进制(默认)和文本。

双通道协议:命令和数据连接。

两种模式(从服务器角度):

  • 主动(PORT style):服务器主动连接

命令(控制)端口: 客户端:随机port ---> 服务器:21/tcp

数据端口: 客户端:随机port <--- 服务器:20/tcp

  • 被动(PASV style):客户端主动连接

命令(控制)端口: 客户端:随机port ---> 服务器:21/tcp

数据端口: 客户端:随机port ---> 服务器:随机port /tcp

 

 

2.2.1 实验一、将服务端的文件拷贝到本地

实验内容:

客户端IP为192.168.72.10,服务端IP为192.168.72.129。

需要将服务端中的 /f1.txt 文件拷贝到客户端。

实验思路:

1、服务端,安装 vsftpd 软件包。

2、服务端,启动 vsftpd 服务,检查21端口是否开启。

并将 /f1.txt 文件复制到/var/ftp 目录下。(/var/ftp 是程序用户ftp的家目录)

3、客户端,安装ftp工具。

4、客户端,使用 ftp 命令从服务端中将f1.txt拷贝到本地。

 

 步骤2. 服务端安装vsftpd软件包。安装后系统会自动创建程序用户ftp,家目录为/var/ftp。

 

 

 

 

 

 步骤3. 启动vsftpd服务,确认21端口已开启。并将 /f1.txt 文件复制到/var/ftp 目录下。

 

 

 

 

 

 步骤4. 客户端,安装 ftp 程序

 

 

步骤5. 客户端,使用 ftp 命令从服务端中将f1.txt拷贝到本地。
 

 

 

 

 

 

 

 

 

2.3 ftp总结

  1. 一定要关闭防火墙和selinux。
  2. 使用get从服务端下载文件时,用户ftp对该文件必须拥有r权限(即读取权限),否则无法下载。例如/etc/passswd 文件,普通用户没有读取权限,无法下载该文件。
  3. get和put 不支持对目录文件进行下载和上传,必须先使用tar命令将目录进行归档压缩,之后才能下载或上传。
  4. 用户ftp对/var/ftp目录,不能拥有w权限,否则ftp用户不能登录访问。
  5. ftp用户在/var/ftp/pub目录下上传文件时,必须对pub目录拥有wx权限(即写入和执行权限),否则上传文件会提示失败,不支持创建文件,因为没有写入权限。
  6. put 上传文件时,不支持绝对路径,想要上传的文件必须在客户端的当前目录内。 例如当前是在/root目录下使用ftp连接服务端,想要上传/tmp/file01文件,必须先将file01复制到/root目录下,之后使用“put file01”或“put ./file01”命令删上传,不支持“put /tmp/file01"这种格式

posted @ 2022-10-15 11:10  原味苦茶  阅读(1762)  评论(0编辑  收藏  举报