1. SSH客户端配置文件 (~/.ssh/config)
# 保持连接心跳(防止超时断开)
Host *
ServerAliveInterval 60
# 指定端口和用户连接特定主机
Host myserver
HostName 172.31.12.36
User root
Port 22
# 禁用严格主机密钥检查(首次连接跳过验证)
StrictHostKeyChecking no
2. SSH服务端配置文件 (/etc/ssh/sshd_config)
# 允许密码认证
PasswordAuthentication yes
# 允许root用户登录
PermitRootLogin yes
# 修改SSH监听端口(默认22)
Port 2222
# 限制登录用户(多个用户用空格分隔)
AllowUsers user1 user2
3. 常用SSH命令
# 生成密钥对(默认RSA)
ssh-keygen -t rsa -C "your_email@example.com"
# 复制公钥到远程主机(实现免密登录)
ssh-copy-id -i \~/.ssh/id_rsa.pub user@host
# 端口转发(将本地2001映射到远程80端口)
ssh -N -L 2001:localhost:80 user@host
# 通过跳板机连接内网主机
ssh -J jump_user@jump_host internal_user@internal_host
# 文件传输(SCP命令)
scp -P 22 -r /local/folder user@host:/remote/folder
# 调试模式(显示详细连接日志)
ssh -v user@host
4. 密钥管理相关文件
# 客户端公钥存储路径(需上传到服务端)
~/.ssh/id_rsa.pub
# 服务端授权密钥文件(存放允许登录的公钥)
~/.ssh/authorized_keys
# 已知主机指纹记录(首次连接后自动生成)
~/.ssh/known_hosts
5. 高级功能
# SSH挂载远程目录(需安装sshfs)
sshfs user@host:/remote/path /local/mountpoint
# 比较本地与远程文件差异
ssh user@host cat /path/remote_file | diff local_file -
5. 欧拉Linux默认配置文件
# SSH 协议版本(默认已强制使用 Protocol 2,显式声明无实际影响)
Protocol 2
# 日志级别:VERBOSE 会记录详细调试信息(建议生产环境使用 INFO)
LogLevel VERBOSE
# 启用公钥认证(推荐开启以提高安全性)
PubkeyAuthentication yes
# 忽略 .rhosts 和 .shosts 文件(防止基于主机的认证漏洞)
IgnoreRhosts yes
# 禁用基于主机的认证(增强安全性)
HostbasedAuthentication no
# 禁止空密码登录(必须关闭以防止弱密码攻击)
PermitEmptyPasswords no
# 禁止用户设置环境变量(减少潜在攻击面)
PermitUserEnvironment no
# 允许的加密算法(推荐使用现代算法如 AES-CTR/GCM)
Ciphers aes128-ctr,aes192-ctr,aes256-ctr,aes128-gcm@openssh.com,aes256-gcm@openssh.com,chacha20-poly1305@openssh.com
# 客户端活跃检测失败次数为 0(需配合 ClientAliveInterval 使用,建议设为 3)
ClientAliveCountMax 0
# 登录前显示的横幅文件路径(常用于法律声明或警告信息)
Banner /etc/issue.net
# 消息认证码算法(推荐使用 SHA2 系列)
MACs hmac-sha2-512,hmac-sha2-512-etm@openssh.com,hmac-sha2-256,hmac-sha2-256-etm@openssh.com
# 严格检查文件权限(防止密钥文件权限不当)
StrictModes yes
# 禁用 TCP 端口转发(限制网络功能,按需开启)
AllowTcpForwarding no
# 禁用 SSH 代理转发(减少攻击面)
AllowAgentForwarding no
# 禁止远程主机绑定本地端口(防止端口劫持)
GatewayPorts no
# 禁用 VPN 隧道功能(按需开启)
PermitTunnel no
# 密钥交换算法(推荐使用 Curve25519 和 DH-Group)
KexAlgorithms curve25519-sha256,curve25519-sha256@libssh.org,diffie-hellman-group-exchange-sha256
# 接受的基于主机的密钥类型(需与客户端兼容)
HostbasedAcceptedKeytypes ssh-ed25519,ssh-ed25519-cert-v01@openssh.com,rsa-sha2-256,rsa-sha2-512
# GSSAPI 密钥交换算法
GSSAPIKexAlgorithms gss-group14-sha256-,gss-group16-sha512-,gss-curve25519-sha256-
# CA 签名算法(推荐使用 Ed25519 和 RSA-SHA2)
CASignatureAlgorithms ssh-ed25519,sk-ssh-ed25519@openssh.com,rsa-sha2-512,rsa-sha2-256
# 服务器主机密钥算法(需与客户端兼容)
HostKeyAlgorithms ssh-ed25519,ssh-ed25519-cert-v01@openssh.com,rsa-sha2-256,rsa-sha2-512
# 客户端公钥类型限制(需与现有密钥匹配)
PubkeyAcceptedKeyTypes ssh-ed25519,ssh-ed25519-cert-v01@openssh.com,rsa-sha2-256,rsa-sha2-512