使用SSH远程管理CentOS服务器是一种常见且高效的方式,以下是一些有用的技巧和步骤:
安装与基础配置
-
安装SSH服务:
- 在Ubuntu/Debian系统上:
sudo apt update && sudo apt install openssh-server
- 在CentOS/RHEL系统上:
sudo yum install openssh-server && systemctl start sshd
- 验证服务状态:
systemctl status sshd
- 在Ubuntu/Debian系统上:
-
服务器配置:
- 修改配置文件
/etc/ssh/sshd_config
:- 更改默认端口(避免扫描):
Port 2222
- 禁止root直接登录:
PermitRootLogin no
- 禁用密码认证(推荐密钥):
PasswordAuthentication no
- 限制允许登录的用户:
AllowUsers user1 user2
- 更改默认端口(避免扫描):
- 重启服务:
systemctl restart sshd
- 修改配置文件
密钥认证与安全加固
-
生成密钥对:
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
- 默认存储路径:
~/.ssh/id_rsa
(私钥)和id_rsa.pub
(公钥)。
- 默认存储路径:
-
部署公钥到服务器:
- 使用
ssh-copy-id
:ssh-copy-id -i ~/.ssh/id_rsa.pub user@remote_host
- 手动复制:
cat ~/.ssh/id_rsa.pub | ssh user@remote_host "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"
- 权限设置:
chmod 700 ~/.ssh && chmod 600 ~/.ssh/authorized_keys
- 使用
-
安全增强措施:
- 使用防火墙限制SSH端口访问(如
ufw
或iptables
)。 - 部署
fail2ban
防御暴力破解。
- 使用防火墙限制SSH端口访问(如
客户端配置与实用命令
-
简化连接配置:
- 编辑
~/.ssh/config
:Host myserver HostName 192.168.1.100 User user Port 2222 IdentityFile ~/.ssh/id_rsa
- 连接时直接使用别名:
ssh myserver
- 编辑
-
文件传输:
- 本地到远程:
scp -P 2222 local_file user@remote_host:/path
- 远程到本地:
scp -r user@remote_host:/remote_dir /local_dir
- 本地到远程:
-
端口转发与隧道:
- 本地端口转发(访问内网服务):
ssh -L 8080:internal_host:80 user@jump_host
- 动态SOCKS代理:
ssh -D 1080 user@remote_host
- 本地端口转发(访问内网服务):
故障排查与最佳实践
-
日志与调试:
- 查看服务状态:
journalctl -u sshd
- 详细连接调试:
ssh -vv user@remote_host
- 查看服务状态:
-
最佳实践:
- 定期更新系统和SSH软件包。
- 备份配置文件:
cp /etc/ssh/sshd_config /etc/ssh/sshd_config.backup
通过以上步骤和技巧,你可以更安全、高效地使用SSH远程管理CentOS服务器。