scp命令及使用过程中常见问题的解决方案

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了scp命令及使用过程中常见问题的解决方案相关的知识,希望对你有一定的参考价值。

参考技术A scp命令用于操作系统之间(Linux之间或者linux与windows之间)复制文件和目录。

scp是 secure copy的缩写, scp是linux系统下基于ssh登陆进行安全的远程文件拷贝命令。

1、从本地复制到远程 

A. 复制文件命令格式

(1)scp local_file remote_username@remote_ip:remote_folder 

(2)scp local_file remote_username@remote_ip:remote_file 

(3)scp local_file remote_ip:remote_folder 

(4)scp local_file remote_ip:remote_file 

说明:

第1,2个指定了用户名,命令执行后需要再输入密码,第1个仅指定了远程的目录,文件名字不变,第2个指定了文件名;

第3,4个没有指定用户名,命令执行后需要输入用户名和密码,第3个仅指定了远程的目录,文件名字不变,第4个指定了文件名;

B. 复制目录命令格式:

(1)scp -r local_folder remote_username@remote_ip:remote_folder

(2)scp -r local_folder remote_ip:remote_folder 

说明:

第1个指定了用户名,命令执行后需要再输入密码;

第2个没有指定用户名,命令执行后需要输入用户名和密码;

2、从远程复制到本地

从远程复制到本地,只要将从本地复制到远程的命令的后2个参数调换顺序即可。

应用实例:

scp root@www.runoob.com:/home/root/others/music /home/space/music/1.mp3

scp -r www.runoob.com:/home/root/others/ /home/space/music/

说明

(1)如果远程服务器防火墙有为scp命令设置了指定的端口,我们需要使用 -P 参数来设置命令的端口号,命令格式如下:

#scp 命令使用端口号 4588

scp -P 4588 remote@www.runoob.com:/usr/local/sin.sh /home/administrator

(2)使用scp命令要确保使用的用户具有可读取远程服务器相应文件的权限,否则scp命令是无法起作用的。

scp命令运行过程中,涉及到SSH。SSH或Secure Shell是一种安全通信协议,用于远程连接两个操作系统,以便我们可以使用命令控制台从客户端计算机控制主机。关于SSH最重要的是它能够加密连接会话,这是FTP或Telnet无法实现的,更不安全的协议,并且已经很少使用。SSH还允许将数据安全地从主机复制到客户端,并且可以使用比普通用户的会话密钥更安全的RSA密钥,我们还可以通过隧道传输文件来获得更高的安全性。使用SSH,我们可以在内部网络和完全远程连接到配置为服务器的计算机。为此,我们必须打开TCP端口22,这是默认端口。

假设这里有两台机器A、B,B是安装在虚拟机里的debian系统,在B机器上可以使用ssh登录到A机器

但是在A上使用ssh命令登录B机器时提示错误:

ssh: connect to host 192.168.28.160 port 22: Connection refused

原来ssh分为ssh-client和ssh-server两部分,B设备只安装了ssh-client而没有安装ssh-server才导致上述问题。

解决方法:在B机器上安装ssh-server,apt-get install ssh-server

然后在A上执行ssh root@192.168.28.160却提示了另外一个waring:

  WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!

在网上搜了一下发现出现这个warning是因为对端重新的ssh服务出现变动所致。

以上是关于scp命令及使用过程中常见问题的解决方案的主要内容,如果未能解决你的问题,请参考以下文章

使用密钥解决scp命令需要输入密码问题

linux远程拷贝命令及not a regular file 解决方案

记录一奇葩scp问题的分析与解决过程

CentOS使用不了scp命令怎么办

解决scp命令pemission denied,please try again的问题

centos7上 scp:.:not a regular file 问题解决方案