建议先阅读Linux文件系统,了解Linux的文件目录
SSH 和 SCP
序号 | 命令 | 对应英文 | 作用 |
---|---|---|---|
01 | ssh user@ip | secure shell | 远程登录服务器 |
02 | scp user@ip:文件名或路径 user@ip:文件名或路径 | secure copy | 远程复制文件 |
ssh基础
在通过ssh可以连接到运行了ssh服务器的远程机器上
- SSH 客户端 算是一种使用
Secure Shell(SSH)
协议连接到远程计算机的应用程序 SSH
是目前比较可靠,专为远程登录会话和其他网络服务提供安全性的协议- 利用
SSH协议
可以有效防止远程管理过程中的信息泄露 - 通过
SSH协议
可以对所有传输的数据进行加密,也能够防止DNS欺骗和IP欺骗
- 利用
SSH
的另一项优点是传输的数据是经过压缩的,所以可以加快传输的速度
1) 域名和端口号
域名
- 有一串用点分隔的名字组成,例如
www.liulinlong.cn
- 是IP地址的别名,方便用户记忆
端口号
- IP地址:通过IP地址找到网络上的计算机
- 端口号:通过端口号可以找到计算机上运行的应用程序
- SSH服务器的默认端口号是
22
,如果是默认端口号,在连接的时候,可以省略
- SSH服务器的默认端口号是
- 常见服务端口号列表:
序号 服务 端口号 01 SSH服务器 22 02 Web服务器 80 03 HTTPS 443 04 FTP服务器 21
2)SSH客户端的简单使用
ssh [-p port] user@remote
user
是在远程服务器上的用户名,如果不指定的话默认当前用户remote
是远程服务器的地址,可以是IP/域名,或者是别名port
是SSH Server监听的端口,如果不指定,就默认22
Linux中只有用户和文件,没有盘符的概念!!!
提示:
- 使用
exit
退出当前用户的登录注意:
ssh
着命令只能在Linux
和UNIX
系统下使用,macOS
可以- 如果在
Windows
系统中,可以安装PuTTY
或者XShell
客户端软件使用,PuTTY
和XShell
都是免费的- 据说现在
Windows 10
自带的Power Shell
已经支持ssh
了提示:
- 在工作中,SSH服务器的端口号很有可能不是22,如果这样,需要使用
-p
选项指定正确的端口号,否则无法正常连接到服务器
scp
cp可在本地拷贝文件,而scp可以与远程服务器交互
它的地址格式与ssh基本相同,但是需要注意的是,指定端口使用大写的-P
而不是小写的
# 把本地当前目录下的01.py文件 复制到 uancheng 家目录下的Desktop/01.py
# 注意: `:`后面的路径如果不是绝对路径,则以用户的家目录作为参照路径
scp -P port 01.py user@remote:Desktop/01.py
# 把远程 家目录下的 Desktop/01.py 文件复制到本地当前目录下的 01.py
scp -P port user@remote:Desktop/01.py ./01.py
# 加上-r可以传送文件夹
# 把当前目录下的demo文件夹复制到远程家目录下的 Desktop
scp -P port -r demo user@remote:Desktop
# 把远程家目录下的Desktop文件夹 复制到 当前目录的demo文件夹
scp -r user@remote:Desktop demo
# 注意 是把Desktop复制过来,并把文件夹重命名为demo
SSH高级(初建服务器必备)
- 免密码登录
- 配置别名
提示:有关SSH配置信息都保存在家目录下的
.ssh
目录下
1) 免密码登录
步骤
- 配置公钥
- 在本地
.ssh
目录下执行ssh-keygen
生成SSH钥匙,回车确认即可
- 在本地
- 上传公钥到服务器
- 执行
ssh-copy-id -p port user@remote
其实就是
scp id_rsa.pub user@remote:.ssh/authorized.key
- 会要求输入user的密码
- 执行
免密码登录原理
- 非对称加密算法
- 本地使用私钥对数据进行加密/解密
- 服务器使用公钥对数据进行加密/解密
2) 配置别名
在~/.ssh/config
追加以下内容
Host 别名
HostName ip地址
User 用户名
Port 端口号
保存后就可以使用 ssh 别名
实现远程登录了,scp
同样适用