SSH介绍
SSH(Secure Shell)是一种加密的远程控制协议,用于安全登录服务器、传输文件及端口转发。本文详解其核心功能与7个常用命令:远程登录(ssh)、指定端口连接、密钥免密登录、文件传输(scp)、远程命令执行及端口隧道,助你高效管理服务器。掌握基础命令即可覆盖日常运维需求。
SSH 是什么?
SSH(Secure Shell)就像是一个“加密的管道”,让你可以安全地远程控制另一台电脑(比如服务器)。它比老旧的 Telnet 更安全,因为所有传输的数据(包括密码)都会被加密,防止被黑客窃听。
SSH 的核心功能
- 远程登录:用命令行操作另一台电脑(比如公司的服务器)。
- 安全传输文件:通过
scp
或sftp
命令加密传输文件。 - 端口转发:绕过防火墙限制,或者加密其他不安全的网络服务(比如远程访问数据库)。
常用命令及解释
1. 连接远程服务器
ssh username@服务器IP地址
- 例子:
ssh alice@192.168.1.100
- 注释:用用户名
alice
登录到 IP 为192.168.1.100
的服务器,首次连接会提示确认指纹(输入yes
),然后输入密码。
2. 指定端口连接
ssh -p 2222 username@服务器IP地址
- 注释:如果服务器的 SSH 服务端口不是默认的
22
(比如改成2222
),需要用-p
指定。
3. 用密钥登录(免密码)
ssh -i ~/.ssh/my_key.pem username@服务器IP地址
- 注释:用私钥文件
my_key.pem
登录(需提前配置公钥到服务器)。
4. 传输文件到远程服务器
scp 本地文件.txt username@服务器IP地址:/远程/路径/
- 例子:
scp report.pdf alice@192.168.1.100:/home/alice/
- 注释:将本地的
report.pdf
加密传输到服务器的/home/alice/
目录。
5. 从服务器下载文件
scp username@服务器IP地址:/远程/文件.txt 本地路径/
- 例子:
scp alice@192.168.1.100:/data/logs.txt ./downloads/
6. 直接执行远程命令
ssh username@服务器IP地址 "要执行的命令"
- 例子:
ssh alice@192.168.1.100 "ls /tmp"
- 注释:登录服务器后执行
ls /tmp
并返回结果,适合自动化脚本。
7. SSH 隧道(端口转发)
ssh -L 本地端口:目标地址:目标端口 username@服务器IP地址
- 例子:
ssh -L 3306:localhost:3306 alice@192.168.1.100
- 注释:将本地的
3306
端口转发到服务器内部的3306
端口(比如访问内网数据库)。
其他实用技巧
- 查看 SSH 版本:
ssh -V
- 调试连接问题:
ssh -v username@IP地址
(-v
显示详细日志) - 退出远程会话:直接输入
exit
或按Ctrl + D
。
一句话总结
SSH 就是让你安全地“遥控”另一台电脑的工具,既能操作命令,也能传文件,还能搞网络“隧道”。常用命令就那几个,记住 ssh
、scp
和端口转发就够了!