您好,登录后才能下订单哦!
密码登录
登录注册
点击 登录注册 即表示同意《亿速云用户服务条款》
# 如何在Linux系统中配置OpenSSH
## 1. OpenSSH简介
OpenSSH(Open Secure Shell)是SSH协议的开源实现,用于安全地远程登录和管理Linux/Unix系统。作为传统不安全的telnet和rlogin工具的替代品,OpenSSH提供加密的通信通道,防止信息泄露、连接劫持等安全威胁。
### 1.1 核心组件
- **sshd**:SSH服务端守护进程
- **ssh**:SSH客户端程序
- **scp/sftp**:安全文件传输工具
- **ssh-keygen**:密钥生成工具
- **ssh-agent**:密钥管理工具
### 1.2 主要功能
- 加密的远程终端访问
- 安全的文件传输
- 端口转发隧道
- X11图形界面转发
- 基于密钥的身份验证
## 2. 安装OpenSSH
### 2.1 检查现有安装
```bash
ssh -V
systemctl status sshd
发行版 | 安装命令 |
---|---|
Ubuntu/Debian | sudo apt install openssh-server |
CentOS/RHEL | sudo yum install openssh-server |
Arch Linux | sudo pacman -S openssh |
openSUSE | sudo zypper install openssh |
sudo systemctl start sshd
sudo systemctl enable sshd
/etc/ssh/sshd_config
Port 22 # 监听端口(建议修改)
ListenAddress 0.0.0.0 # 监听所有IP
PermitRootLogin prohibit-password # 禁止密码登录root
PasswordAuthentication yes # 临时允许密码登录
X11Forwarding yes # 允许X11转发
MaxAuthTries 3 # 最大认证尝试次数
# 备份原配置
sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
# 编辑配置
sudo nano /etc/ssh/sshd_config
Port 2222 # 改为非标准端口
PermitRootLogin no
AllowUsers alice bob
DenyUsers hacker
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
ClientAliveInterval 300 # 5分钟无活动断开
ClientAliveCountMax 0 # 不保持持久连接
LoginGraceTime 1m # 登录超时1分钟
ssh-keygen -t ed25519 -C "your_email@example.com"
-t
:密钥类型(rsa/ed25519/ecdsa)-b
:密钥位数(rsa建议4096)-f
:指定密钥文件路径ssh-copy-id -i ~/.ssh/id_ed25519.pub user@hostname -p 2222
mkdir -p ~/.ssh
chmod 700 ~/.ssh
cat id_ed25519.pub >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
# 安装Google Authenticator
sudo apt install libpam-google-authenticator
# 配置PAM模块
echo "auth required pam_google_authenticator.so" | sudo tee -a /etc/pam.d/sshd
# 本地端口转发
ssh -L 8080:localhost:80 user@host
# 远程端口转发
ssh -R 3306:localhost:3306 user@host
Host jumpbox
HostName jump.example.com
User alice
Port 2222
IdentityFile ~/.ssh/jump_key
Host internal-server
HostName 192.168.1.100
User bob
ProxyJump jumpbox
sudo ufw allow 2222/tcp
sudo ufw enable
sudo firewall-cmd --permanent --add-port=2222/tcp
sudo firewall-cmd --reload
sudo iptables -A INPUT -p tcp --dport 2222 -j ACCEPT
sudo iptables-save > /etc/iptables/rules.v4
/var/log/auth.log # Debian系
/var/log/secure # RHEL系
# 查看失败登录尝试
grep "Failed password" /var/log/auth.log
# 统计攻击来源IP
grep "Failed password" /var/log/auth.log | awk '{print $11}' | sort | uniq -c | sort -nr
sudo apt install fail2ban
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
ssh -vvv user@hostname # 显示详细调试信息
sudo journalctl -u sshd # 查看服务日志
# 检查关键目录权限
ls -ld ~/.ssh
ls -l ~/.ssh/authorized_keys
# 检查SELinux状态
sestatus
# 修改SSH端口时需要
semanage port -a -t ssh_port_t -p tcp 2222
定期更新:保持OpenSSH为最新版本
sudo apt update && sudo apt upgrade openssh-server
最小权限原则:仅允许必要用户访问
禁用旧协议:禁用SSHv1和不安全的加密算法
Protocol 2
Ciphers chacha20-poly1305@openssh.com,aes256-gcm@openssh.com
网络限制:通过防火墙限制源IP访问
备份配置:修改前备份配置文件
命令 | 说明 |
---|---|
systemctl restart sshd |
重启SSH服务 |
ssh-keygen -lf id_rsa.pub |
查看密钥指纹 |
ssh-add ~/.ssh/id_ed25519 |
添加密钥到ssh-agent |
scp -P 2222 file user@host: |
安全文件传输 |
sftp -oPort=2222 user@host |
交互式文件传输 |
提示:所有配置修改后都需要执行
sudo systemctl reload sshd
使更改生效 “`
这篇文章提供了从基础安装到高级配置的完整OpenSSH指南,包含安全加固、密钥管理、故障排查等实用内容。实际部署时,请根据具体环境调整配置参数,并始终遵循最小权限原则。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。