1.SCP文件传输命令
- scp 就是
secure copy,是一个在 Linux 下用来进行 远程拷贝文件 的命令 - 它的地址格式与 ssh 基本相同,需要注意的是,在指定端口时用的是大写的
-P而不是小写的
# 把本地当前目录下的 01.py 文件 复制到 远程 家目录下的 Desktop/01.py
# 注意:`:` 后面的路径如果不是绝对路径,则以用户的家目录作为参照路径
scp -P port 01.py [email protected]:Desktop/01.py
# 把远程 家目录下的 Desktop/01.py 文件 复制到 本地当前目录下的 01.py
scp -P port [email protected]:Desktop/01.py 01.py
# 加上 -r 选项可以传送文件夹
# 把当前目录下的 demo 文件夹 复制到 远程 家目录下的 Desktop
scp -r demo [email protected]:Desktop
# 把远程 家目录下的 Desktop 复制到 当前目录下的 demo 文件夹
scp -r [email protected]:Desktop demo
| 选项 | 含义 |
|---|---|
| -r | 若给出的源文件是目录文件,则 scp 将递归复制该目录下的所有子目录和文件,目标文件必须为一个目录名 |
| -P | 若远程 SSH 服务器的端口不是 22,需要使用大写字母 -P 选项指定端口 |
注意:
scp这个终端命令只能在Linux或者UNIX系统下使用(Win10也能使用)- 如果在
Windows系统中,可以安装PuTTY,使用pscp命令行工具或者安装FileZilla使用FTP进行文件传输
FileZilla
- 官方网站:https://www.filezilla.cn/download/client
-
FileZilla在传输文件时,使用的是FTP 服务而不是SSH 服务,因此端口号应该设置为21
2.SSH高级使用
- 免密码登录
- 配置别名
提示:有关 SSH 配置信息都保存在用户家目录下的
.ssh目录下
1)免密码登录
步骤
- 配置公钥
- 执行
ssh-******即可生成 SSH 钥匙,一路回车即可
- 执行
- 上传公钥到服务器
- 执行
ssh-copy-id -p port [email protected],可以让远程服务器记住我们的公钥
- 执行
非对称加密算法
- 使用 公钥 加密的数据,需要使用 私钥 解密
- 使用 私钥 加密的数据,需要使用 公钥 解密
2) 配置别名
每次都输入 ssh -p port [email protected],时间久了会觉得很麻烦,特别是当 user, remote 和 port 都得输入,而且还不好记忆
而 配置别名 可以让我们进一步偷懒,譬如用:ssh mac 来替代上面这么一长串,那么就在 ~/.ssh/config 里面追加以下内容:
Host mac
HostName ip地址
User itheima
Port 22
保存之后,即可用 ssh mac 实现远程登录了,scp 同样可以使用