SSH 远程连接
什么是 SSH?
SSH(Secure Shell)是一种加密的网络协议,用于在不安全的网络中安全地远程登录和执行命令。SSH 取代了不安全的 telnet、rlogin 等协议。
SSH 基础
安装 SSH
基本连接
首次连接
首次连接会显示主机指纹确认:
SSH 密钥认证
密钥认证比密码认证更安全、更方便。
生成密钥对
密钥文件
复制公钥到服务器
设置正确的权限
使用特定密钥
SSH 配置文件
客户端配置 ~/.ssh/config
使用配置后的连接:
服务器配置 /etc/ssh/sshd_config
修改配置后重启 SSH:
SSH 高级用法
执行远程命令
端口转发
本地端口转发
将本地端口转发到远程主机:
远程端口转发
将远程端口转发到本地:
动态端口转发(SOCKS 代理)
后台运行端口转发
文件传输
scp - 安全复制
rsync - 高效同步
sftp - 交互式传输
SSH Agent
SSH Agent 可以缓存私钥密码:
跳板机/堡垒机
安全最佳实践
1. 禁用密码认证
2. 禁用 root 登录
3. 更改默认端口
4. 使用强密钥
5. 设置密钥密码
生成密钥时设置密码,使用 SSH Agent 管理。
6. 限制用户
7. 使用 Fail2ban
故障排查
调试连接
常见问题
Permission denied
Connection refused
Host key verification failed
小结
本章介绍了 SSH 的使用:
- 基本连接:
ssh user@host - 密钥认证:
ssh-keygen、ssh-copy-id - 配置文件:
~/.ssh/config - 文件传输:
scp、rsync、sftp - 端口转发:本地、远程、动态
- 安全配置:禁用密码、禁用 root
SSH 是 Linux 服务器管理的核心工具,熟练掌握它将大大提高你的工作效率。
上一章:网络基础
下一章:Shell 脚本基础