ubuntu下scp命令使用,开启ssh服务

Linux SCP 命令

Linux scp 命令用于 Linux 之间复制文件和目录,scp 是 linux 系统下基于 ssh 登陆进行安全的远程文件拷贝命令。

scpsecure copy的简写,用于在 Linux 下进行远程拷贝文件的命令,scp传输是加密的,可能会稍微影响一下速度。另外,scp还非常不占资源,不会提高多少系统负荷,在这一点上,rsync就远远不及它了。虽然rsync会比scp会快一点,但当小文件众多的情况下,rsync会导致硬盘 I/O 非常高,而scp基本不影响系统正常使用。

注意:使用 scp 命令要确保使用的用户具有可读取远程服务器相关文件的权限,否则 scp 命令无法起作用。

开启ssh服务

第一步:安装 openssh-server (通常 Linux 系统会默认安装 openssh 的客户端软件 openssh-client),所以需要自己安装一下服务端 :

复制代码
sudo apt-get install openssh-server

第二步:开启 OpenSSH 服务

复制代码
sudo /etc/init.d/ssh start

或者

sudo service ssh start

第三步:验证是否开启服务

复制代码
ps -e | grep ssh  (或sshd)

如果有输出 sshd 证明已经开启 ssh 服务

远程 SSH

复制代码
ssh username@192.168.1.112

username 为该硬件 @192.168.1.112 的用户账号,回车后一般会提示你输入相应密码

设置开机启动

进入 /etc/rc.local 编辑配置

复制代码
vi /etc/rc.local

在最后插入两行

  1. service ssh start

  2. exit 0

保存退出

这样即可在 Ubuntu 开机时自动启动 ssh-server 服务

scp用法和常用命令

  1. 从服务器上下载文件

    scp username@servername:/path/filename /var/www/local_dir (本地目录)

示例scp root@192.168.0.101:/var/www/test.txt 把192.168.0.101上的/var/www/test.txt的文件下载到/var/www/local_dir (本地目录)

  1. 上传本地文件到服务器

    scp /path/filename username@servername:/path

示例scp /var/www/test.php root@192.168.0.101:/var/www/ 把本机/var/www/目录下的test.php文件上传到192.168.0.101这台服务器上的/var/www/目录中

  1. 从服务器下载整个目录

    scp -r username@servername:/var/www/remote_dir/ (远程目录) /var/www/local_dir (本地目录)

示例scp -r root@192.168.0.101:/var/www/test /var/www/

  1. 上传目录到服务器

    scp -r local_dir username@servername:remote_dir

示例scp -r test root@192.168.0.101:/var/www/ 把当前目录下的test目录上传到服务器的/var/www/ 目录

常见命令参数

复制代码
usage: scp [-1246Bcpqrv] [-c cipher] [-F ssh_config] [-i identity_file]
           [-l limit] [-o ssh_option] [-P port] [-S program]
           [[user@]host1:]file1 ... [[user@]host2:]file2

表格

参数 说明
-q quiet(静默模式,不显示传输进度)
-r recursive(递归复制整个目录)
-p property(保留原文件的修改时间、访问时间和权限)
-v verbose(详细输出传输过程)
-i: identity_file(从指定文件中读取传输时使用的密钥文件,此参数直接传递给 ssh)
-P: port(指定远程主机的端口号)

常见命令展示

SCP 命令的实际应用概述:从本地服务器复制到远程服务器

(1) 复制文件:

命令格式:

复制代码
scp local_file remote_username@remote_ip:remote_folder
或者
scp local_file remote_username@remote_ip:remote_file
或者
scp local_file remote_ip:remote_folder
或者
scp local_file remote_ip:remote_file

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

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

(2) 复制目录:

命令格式:

复制代码
scp -r local_folder remote_username@remote_ip:remote_folder
或者
scp -r local_folder remote_ip:remote_folder

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

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

相关推荐
天远数科7 分钟前
零信任架构实战:基于天远车辆出险记录核验构建自动化信贷网关
运维·人工智能·架构·自动化
不会就选b12 分钟前
数据结构之栈的算法题(OJ)
linux·数据结构·算法
码农阿豪15 分钟前
Seedance 2.0/2.5 虚拟素材能跨 Key 共用吗?一次讲清 Asset ID、账号隔离与 SaaS 素材架构
java·运维·架构
刘某的Cloud30 分钟前
k8s部署prometheus架构规则
linux·运维·kubernetes·prometheus·监控
mounter62541 分钟前
从 2026 LSFMM/BPF 峰会看 eBPF 生态演进:技术变革、工具全景与资源泄漏诊断实战
linux·linux kernel·kernel
M78佐菲1 小时前
Linux学习笔记:网络通信
linux·笔记·学习·算法
AAA代码批发商1 小时前
Days37 Linux C 网络编程:UDP、TCP 与 HTTP 协议实战详解
linux·c语言·网络
Ningcode_cloud1 小时前
什么是CICD? GitLab + Jenkins 持续集成实战部署手册
运维·ci/cd·云原生·容器·gitlab·jenkins
好评1241 小时前
【Linux】传输层协议UDP
linux·运维·udp
Csxyzj1 小时前
基于Linux+Docker NAT的Ollama多实例负载均衡部署
运维·docker·容器