Linux系列讲解 —— 【scp】命令行实现两台主机之间传输文件

有时候不方便创建共享文件夹来拷贝文件,这个时候可以通过scp命令实现两台主机之间的文件拷贝操作。

1. 准备工作—安装ssh服务:

scp在拷贝远端电脑的文件时,会通过ssh服务访问远端,所以远端电脑必须要安装ssh服务。下面分别介绍一下linux和windows平台安装ssh服务的方法

1.1 windows平台(Win10)

  1. 安装ssh的客户端和服务端
    在这里插入图片描述
  2. ssh服务的启动和关闭
    调用cmd或powershell终端,然后按情况执行下面命令
    开启服务:net start sshd
    关闭服务:net stop sshd

1.2 Linux平台(Ubuntu18.04)

1.安装openssh-server

sudo apt install openssh-server

2.开启服务和关闭服务

#启动服务
sudo systemctl start ssh

#关闭服务
sudo systemctl stop ssh

3.查看服务状态

sudo systemctl status sshd

开启状态:
在这里插入图片描述

关闭状态:
在这里插入图片描述

2. scp命令使用实例

基本语法:

#文件拷贝
scp 用户名@文件源ip地址:文件源路径 目标路径(本机)

#文件夹拷贝,加-r即可
scp -r 用户名@文件夹源ip地址:文件夹源路径 目标路径(本机)

注:
1.要访问的那个主机必须开启ssh服务
2.上面的本机指的是正在操作的机器,比如通过终端登录机器A,那么此时这个A就是本机。

2.1 远程机是linux系统时

例: 将ip为192.100.10.3的电脑里边的/home/sun/.gitconfig文件拷贝到本地当前工作目录

scp sun@192.100.10.3:/home/sun/.gitconfig ./

2.2 远程机是windows系统时

例: 将ip为192.100.10.4的电脑里边的D:\1.txt文件拷贝到本地当前工作目录

scp administrator@192.100.10.4:/D:/1.txt ./

注:

  1. 上面的例子都是将其他电脑的文件拷贝到本地,如果想将本地文件拷贝到其他电脑,只需要将源路径和目标路径交换一下即可;
  2. 目的地址和源地址不可以都是远程机,如:scp sun1@192.100.10.4:/xxx sun2@192.100.10.7:/xxx。

3. 遇到的问题

3.1 connect to host 192.32.1.6 port 22: Connection timed out

sun@pc:~/code$ scp -v 1.txt administrator@192.32.1.6:/E:/share
Executing: program /usr/bin/ssh host 192.32.1.6, user administrator, command scp -v -t /E:/share
OpenSSH_7.6p1 Ubuntu-4ubuntu0.7, OpenSSL 1.0.2n  7 Dec 2017
debug1: Reading configuration data /home/sun/.ssh/config
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug1: Connecting to 192.32.1.6 [192.32.1.6] port 22.
debug1: connect to address 192.32.1.6 port 22: Connection timed out
ssh: connect to host 192.32.1.6 port 22: Connection timed out
lost connection

这个是由于windows的ssh server没有启动,所以一直连接不上,启动windows ssh服务方法如下
在这里插入图片描述

3.2 Permission denied, please try again.

sun@pc:~/code$ scp administrtor@192.32.1.6:/E:/gitcommit_template ~/
administrtor@192.32.1.6's password: 
Permission denied, please try again.
administrtor@192.32.1.6's password: 
Permission denied, please try again.
administrtor@192.32.1.6's password: 
administrtor@192.32.1.6: Permission denied (publickey,password,keyboard-interactive).

在你保证ssh服务都开启的情况下,还出现了这个问题,那一定是用户名或者密码写错了,这个里边的administrtor应该是administrator,少写了一个a。不要小看这类问题,往往会困扰很久。

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: Linux之间文件有许多方法,其中常用的有以下几种: 1. 使用`scp`命令: 该命令可以在Linux终端中直接进行文件传输,语法格式为`scp文件路径 目标主机用户名@目标主机IP地址:目标文件路径` 2. 使用FTP: 在Linux终端中可以使用FTP客户端工具进行文件传输,如`ftp`或`ncftp` 3. 使用Samba共享: 可以在两台Linux之间建立Samba共享,然后在终端中使用`mount`命令挂载共享目录,进行文件传输 4. 使用NFS共享: 可以在两台Linux之间建立NFS共享,然后在终端中使用`mount`命令挂载共享目录,进行文件传输 5. 使用sshfs: 使用sshfs可以通过ssh协议挂载远程目录到本地,然后就可以在本地操作远程文件了 ### 回答2: 使用Linux系统传输文件有很多种方法,下面介绍几种常见的方法: 1. SCP命令 SCP命令是一种在Linux系统中进行远程拷贝文件的命令,使用该命令可以在两台Linux系统之间直接传送文件。 使用SCP命令的语法如下: ``` scp [可选参数] [源文件路径] [目标服务器用户名@目标服务器IP或域名]:[目标文件路径] ``` 例如:将本地文件/home/file.txt传送至远程服务器的/home目录下可以使用以下命令: ``` scp /home/file.txt username@targetIPOrDomain:/home ``` 2. SFTP SFTP是一种安全的文件传输协议,类似于FTP,可支持加密的传输方式,使用SFTP协议可以在两台Linux系统之间传输文件。 使用SFTP协议,需要在Linux系统中安装OpenSSH,安装完后,启动SFTP服务,在远程服务器上使用命令连接即可。 SFTP命令连接语法如下: ``` sftp [目标服务器用户名@目标服务器IP或域名] ``` 连接成功后可以使用cd、ls、put、get等命令进行文件传输操作,例如: ``` cd /home put /home/file.txt ``` 3. FTP 如果远程Linux服务器传输文件的需要比较频繁,可以选择在两台Linux系统之间传输文件使用FTP协议。 使用FTP协议,需要在Linux系统中安装FTP软件,例如vsftpd,则需要在vsftpd的配置文件中设置匿名用户权限,使得用户可以上传和下载文件。 FTP命令连接语法如下: ``` ftp [目标服务器IP或域名] ``` 连接成功后可以使用cd、ls、put、get等命令进行文件传输操作。 总之,无论是使用SCP命令还是SFTP、FTP协议,在两台Linux系统之间传输文件都需要保证网络安全,构建一条安全可靠的数据通道。 ### 回答3: 在Linux系统中,传输文件有多种方法,包括使用网络协议,如FTP和SCP,或使用本地连接,如USB。 其中,使用SCP文件传输协议可以轻松地在两个Linux系统之间传输文件SCP协议基于ssh协议,使用加密的连接来传输文件,因此非常安全可靠。 下面是使用SCP传输文件的步骤: 1. 在目标Linux系统上安装openssh-server,如果没有安装的话。可以通过以下命令来安装: ``` sudo apt-get install openssh-server ``` 2. 在源Linux系统上打开终端,输入以下命令来将文件传输到目标系统: ``` scp /path/to/file username@remote:/path/to/destination ``` 其中,/path/to/file是源文件的路径,username是目标系统上的用户名,remote是目标系统的IP地址或主机名,/path/to/destination是目标文件保存的路径。 3. 输入目标系统上的用户密码,等待传输过程完成。在传输完成后,可以在目标系统上找到目标文件SCP协议也可以用于从目标系统传输文件到源系统,只需要调换一下命令中的源和目标路径就可以了。 在使用SCP传输文件时,用户需要注意以下几点: 1. 使用正确的用户名和密码。如果目标系统上的用户名不存在或密码不正确,传输将无法完成。 2. 通过ssh协议传输文件可能会受到网络条件的影响,因此传输速度可能会受到限制。 3. 如果需要传输大型文件,可以使用压缩工具,如tar来打包并压缩文件以减少传输时间。 总之,使用SCP协议可以实现在两个Linux系统之间方便地传输文件,提高了文件传输的效率和安全性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

星际工程师

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值