Debian SSH远程登录设置步骤
小樊
33
2025-12-12 20:00:11
Debian SSH远程登录设置步骤
一 安装与启动
- 更新索引并安装 OpenSSH 服务器:
- sudo apt update
- sudo apt install openssh-server
- 启动服务并设置开机自启(Debian 上服务名为 ssh):
- sudo systemctl start ssh
- sudo systemctl enable ssh
- 验证服务状态(应看到 active/running):
- sudo systemctl status ssh
- 获取服务器地址用于连接:
- ip addr 或 hostname -I 查看本机 IP。
二 防火墙放行
- 使用 UFW(Debian 常见):
- 放行默认端口:sudo ufw allow ssh
- 如自定义端口(例如 2222):sudo ufw allow 2222/tcp
- 启用防火墙:sudo ufw enable
- 使用 iptables:
- 放行端口:sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
- 云服务器请在控制台安全组同时放行对应 TCP 端口。
三 基本配置与连接测试
- 编辑服务端配置(建议先备份):
- sudo cp /etc/ssh/sshd_config{,.bak}
- sudo nano /etc/ssh/sshd_config
- 常用配置项(按需调整):
- Port 22(可改为如 2222 的高位端口)
- PermitRootLogin no(推荐禁止 root 远程登录)
- PasswordAuthentication yes(在密钥未部署前保持可用)
- PubkeyAuthentication yes
- AllowUsers your_username(仅允许指定用户)
- 使配置生效:
- sudo systemctl restart ssh
- 客户端连接测试:
- 默认端口:ssh 用户名@服务器IP
- 自定义端口:ssh -p 2222 用户名@服务器IP
四 密钥登录与权限
- 在客户端生成密钥对(推荐 Ed25519,也可用 RSA 4096):
- ssh-keygen -t ed25519 -C “you@example.com”
- 将公钥上传到服务器(如已改端口,使用 -p 指定):
- ssh-copy-id -i ~/.ssh/id_ed25519.pub 用户名@服务器IP -p 2222
- 服务器端确保目录与文件权限正确(登录目标用户执行):
- mkdir -p ~/.ssh
- chmod 700 ~/.ssh
- touch ~/.ssh/authorized_keys
- chmod 600 ~/.ssh/authorized_keys
- 确认公钥已写入:cat ~/.ssh/authorized_keys
- 验证登录(应无需输入密码):ssh 用户名@服务器IP -p 2222
- 可选:在客户端配置 ~/.ssh/config 简化连接(示例):
- Host myserver
- HostName 服务器IP
- Port 2222
- User 用户名
- IdentityFile ~/.ssh/id_ed25519
五 安全加固与常见问题
- 安全加固建议:
- 禁用 root 远程登录:PermitRootLogin no
- 禁用密码登录(在密钥可用后):PasswordAuthentication no
- 更改默认端口(如 2222),并同步更新防火墙/安全组
- 限制可登录用户:AllowUsers user1 user2
- 配置保活避免断连:ClientAliveInterval 300;ClientAliveCountMax 2
- 安装并启用 Fail2Ban 防暴力破解
- 常见问题排查:
- 服务未运行:sudo systemctl status ssh;查看日志:sudo journalctl -u ssh
- 端口不通:检查云安全组/本机防火墙/路由器端口转发
- 权限错误:确保 ~/.ssh 700、authorized_keys 600
- 配置错误导致无法连接:保持一个已连接的终端,修改后先验证再断开;必要时用控制台恢复
- 认证方式不对:查看日志 /var/log/auth.log,确认使用公钥而非密码