Scp
基于ssh登录进行安全的远程文件拷贝的命令
- 从本地复制到远程
#指定了用户名,命令执行后需要再输入密码
scp local_file remote_username@remote_ip:remote_folder
scp local_file remote_username@remote_ip:remote_file
- 从远程复制到本地
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/
- 指定端口
#scp 命令使用端口号 4588
scp -P 4588 remote@www.runoob.com:/usr/local/sin.sh /home/administrator
rsync
rsync命令是remote sync(远程同步),但它不仅可以远程同步数据(类似于 scp 命令),还可以本地同步数据(类似于 cp 命令)。不同于 cp 或 scp 的一点是,使用 rsync 命令备份数据时,不会直接覆盖以前的数据(如果数据已经存在),而是先判断已经存在的数据和新数据的差异,只有数据不同时才会把不相同的部分覆盖。
#用于仅在本地备份数据;
rsync [OPTION] SRC DEST
#用于将本地数据备份到远程机器上;
rsync [OPTION] SRC [USER@]HOST:DEST
#用于将远程机器上的数据备份到本地机器上;
rsync [OPTION] [USER@]HOST:SRC DEST
rsync [OPTION] [USER@]HOST::SRC DEST
rsync [OPTION] SRC [USER@]HOST::DEST
对比
- scp消耗资源少,不会提高多少系统负荷。
- rsync比scp会快一点,但当小文件多的情况下,rsync会导致硬盘I/O非常高,而scp基本不影响系统正常使用。
ssh免密登陆
ssh使用的是非对称加密,在此过程中,只有公钥会被传输,而私钥是服务端本地保存,因此即便公钥被监听,也无法拿到原始密码,从而登录服务器。
ssh免密登陆则是通过在服务器中保留公钥,通过对公钥进行加密形成相关字符串,而对比本地加密字符串,一致的情况下便直接登陆,免除密码
操作流程
- 生成相关公钥ssh-keygen -t rsa
- ssh-copy-id 用户名@ip地址
- 在本机创建别名,快捷登录服务器 vim ~/.ssh/config
Host alias #自定义别名
HostName hostname #替换为你的ssh服务器ip或domain
Port port #ssh服务器端口,默认为22
User username #ssh服务器用户名
IdentityFile ~/.ssh/id_rsa #第一个步骤中,本机生成的公钥文件对应的私钥文件的地址
参考:
https://www.runoob.com/linux/linux-comm-scp.html