云服务器SSH设置指南,从入门到精通
本文提供了一篇关于云服务器SSH设置的全面指南,从基础到高级,涵盖安装配置、安全加固、自动化管理等知识点,帮助用户深入理解SSH在云服务器中的应用,提升操作效率和安全性,适合新手到进阶用户参考。
SSH 的基本配置
什么是 SSH?
SSH 是一种网络协议,用于在不安全的网络中安全地进行远程登录、文件传输和命令执行,它通过加密通信通道,确保数据在传输过程中不被窃听或篡改。
云服务器上的 SSH 安装与配置
大多数云服务器提供商(如阿里云、腾讯云、华为云等)在创建实例时会默认安装 SSH 服务,如果需要手动安装,可以通过以下命令完成:
# 在 CentOS 上安装 OpenSSH sudo yum install openssh-server openssh-clients -y # 在 Ubuntu 上安装 OpenSSH sudo apt-get update && sudo apt-get install openssh-server -y
安装完成后,启动 SSH 服务并设置开机自启动:
# 启动 SSH 服务 sudo systemctl start sshd # 设置开机自启动 sudo systemctl enable sshd
配置 SSH 端口
默认情况下,SSH 使用 22 端口,为了提高安全性,建议修改默认端口,编辑 SSH 配置文件:
sudo nano /etc/ssh/sshd_config
找到 Port 22
,修改为其他端口号(如 22222),保存并重启 SSH 服务:
sudo systemctl restart sshd
SSH 的安全优化
禁用密码登录
密码登录存在被暴力破解的风险,建议仅使用密钥对登录,编辑 SSH 配置文件:
# 禁用密码登录 PasswordAuthentication no
重启 SSH 服务以生效。
生成 SSH 密钥对
在本地计算机上生成 SSH 密钥对:
ssh-keygen -t rsa -b 4096
生成的密钥对包括 id_rsa
(私钥)和 id_rsa.pub
(公钥),将公钥上传到云服务器:
ssh-copy-id -i ~/.ssh/id_rsa.pub username@your_server_ip
配置防火墙
为了进一步增强安全性,建议配置防火墙规则,仅允许特定 IP 或端口访问 SSH 服务,在 CentOS 上使用 firewalld
:
# 允许 SSH 端口(假设修改为 22222) sudo firewall-cmd --permanent --add-port=22222/tcp # 重启防火墙 sudo firewall-cmd --reload
SSH 的高级功能
SSH 端口转发
SSH 端口转发允许用户通过 SSH 通道访问远程服务器上的其他服务,访问远程数据库:
ssh -L 3306:localhost:3306 username@your_server_ip
SSH 隧道
SSH 隧道可以加密所有通过隧道传输的数据,通过 SSH 隧道访问内部网络资源:
ssh -D 1080 username@your_server_ip
SSH 自动化部署
SSH 可以与脚本结合,实现自动化部署,使用 rsync
通过 SSH 同步文件:
rsync -avz -e "ssh -p 22222" /local/path username@your_server_ip:/remote/path
SSH 的故障排除
无法连接到 SSH 服务
- 检查 SSH 服务是否运行:
sudo systemctl status sshd
- 检查防火墙设置,确保 SSH 端口开放。
密钥认证失败
- 确保公钥已正确添加到
~/.ssh/authorized_keys
文件中。 - 检查文件权限:
chmod 700 ~/.ssh chmod 600 ~/.ssh/authorized_keys
SSH 连接超时
- 检查网络延迟或丢包情况。
- 确保云服务器的安全组规则允许 SSH 端口的入站流量。
扫描二维码推送至手机访问。
版权声明:本文由必安云计算发布,如需转载请注明出处。
本文链接:https://www.bayidc.com/article/index.php/post/23282.html