跳到主要内容

ssh大全


把远程数据库端口映射到本地
ssh -L 3306:database-server:3306 user@jump-server

ssh -L 15432:127.0.0.1:15432 root@orasing.arick.top


让远程服务器能访问你本地的服务
ssh -R 8080:localhost:3000 user@server


把SSH服务器当SOCKS代理用
ssh -D 1080 user@server
# 后台运行
ssh -D 1088 -f -N user@example.com
# -f: 后台运行
# -N: 不执行远程命令,只做端口转发
# -q: 安静模式,减少输出


客户端详细调试
ssh -vvv user@server

配置文件



# 保持连接
Host *
ServerAliveInterval 60
ServerAliveCountMax 5

# 生产服务器配置
Host prod
HostName 192.168.1.100
User deploy
Port 2222
IdentityFile ~/.ssh/prod_key

# 通过跳板机连接内网服务器
Host internal
HostName 10.0.0.11
User root
ProxyJump root@orasing.arick.top

# 开发环境(自动端口转发)
Host dev
HostName dev.company.com
User developer
#远程 5244 转发到本地 15244
LocalForward 15244 localhost:5244
#本地8080 转发到 远程 8089
RemoteForward 8089 localhost:8080

# 通过跳板机连接内网服务器
Host target-server
HostName 192.168.1.100
User myuser
ProxyCommand ssh -W %h:%p jump-server

一键生成和部署密钥

# 生成专用密钥(推荐ED25519算法)
ssh-keygen -t ed25519 -C "work-laptop" -f ~/.ssh/work_key
# 一键部署公钥到服务器
ssh-copy-id -i ~/.ssh/work_key.pub user@server

服务端安全配置

# /etc/ssh/sshd_config 
#关键配置
Port 2222 # 改变默认端口
PermitRootLogin no # 禁止root登录PasswordAuthentication no # 只允许密钥认证
MaxAuthTries 3 # 限制认证尝试次数

# 只允许特定用户登录
AllowUsers deploy developer

# 重启SSH服务
sudo systemctl restart sshd