新上手了树莓派4B,安装了基于Debian10的系统,但是有的时候需要与本机(Deepin)之间传输文件,总是插入U盘也不太方便,直到遇见了scp,总算解决了我的燃眉之急.
1.什么是scp?
scp 是 secure copy 的缩写, scp 是 linux 系统下基于 ssh 登陆进行安全的远程文件拷贝命令,相较于其他传输方式,scp是加密的,安全性相当高.
2.scp具体参数
-1强制scp命令使用协议ssh1
-2强制scp命令使用协议ssh2-4强制scp命令只使用IPv4寻址-6强制scp命令只使用IPv6寻址-B使用批处理模式(传输过程中不询问传输口令或短语)-C允许压缩。(将-C标志传递给ssh,从而打开压缩功能)-p保留原文件的修改时间,访问时间和访问权限-q不显示传输进度条-r递归复制整个目录-v详细方式显示输出。scp和ssh(1)会显示出整个过程的调试信息。这些信息用于调试连接,验证和配置问题-c cipher以cipher将数据传输进行加密,这个选项将直接传递给ssh-F ssh_config指定一个替代的ssh配置文件,此参数直接传递给ssh-i identity_file从指定文件中读取传输时使用的密钥文件,此参数直接传递给ssh-l limit限定用户所能使用的带宽,以Kbit/s为单位-o ssh_option如果习惯于使用ssh_config(5)中的参数传递方式-P port注意是大写的P, port是指定数据传输用到的端口号-S program指定加密传输时所使用的程序。此程序必须能够理解ssh(1)的选项
3.scp小试牛刀
假设本机IP为192.168.1.1,远程主机的IP为192.168.1.2
scp pi@
192.168.1.2:/home
/pi
/Documents
/01.txt
/home
/long/Documents
scp
/home
/long/Documents
/led1
.py pi@
192.168.1.2:/home
/pi
/source_code
其实那么多的参数,往往常用的也就是 -r , -P等几个参数罢了
4.常见问题及解决方法
Linux主机的ssh默认端口是22,但是许多人为了安全起见会修改端口号。当端口错误时通过vi /etc/ssh/sshd_config查看当前端口号,之后输入命令"scp -P 当前端口号"即可当连接出现问题时,通过" vi /etc/ssh/sshd_config"将"PasswordAuthentication no"修改为"PasswordAuthentication yes"出现 “Permission denied"提示时可能是因为权限不够,需要增加权限. 通过"sudo chmod 目标文件夹” 即可解决问题