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命令及使用过程中常见问题的解决方案的主要内容,如果未能解决你的问题,请参考以下文章
linux远程拷贝命令及not a regular file 解决方案