LoongLee's blog

SSH命令与配置

SSH命令与配置

来源

原始文档: ssh.md

核心内容

SSH 安全外壳协议的实用命令和高级配置,包括代理、端口转发和安全加固。

SSH代理功能

本地端口转发

# 将远程端口映射到本地
ssh -L 1088:localhost:6666 user@host

# SOCKS5 代理(动态端口转发)
ssh -D 1088 root@host

# 后台运行,不启动shell
ssh -fND 1088 root@host

# -g 参数允许外部主机访问
ssh -L 1088:localhost:6666 user@host -g

反向代理(内网穿透)

# 建立A到B的反向代理
ssh -fCNR 7280:localhost:22 root@remote-server

# 在B服务器建立正向代理做端口转发
ssh -fCNL *:1234:localhost:7280 localhost

同一主机端口转发

ssh -fCNL "*:5518:localhost:7280" localhost

autossh 守护进程

systemd 服务配置

方法1: 基础配置

[Unit]
Description=AutoSSH tunnel service
Wants=network-online.target
After=network.target network-online.target ssh.service

[Service]
Environment="AUTOSSH_GATETIME=0"
User=USERNAME
ExecStart=/usr/bin/autossh -M 0 -N -q -o "ServerAliveInterval 30" -o "ServerAliveCountMax 3" -L localIp:localPort:remoteIp:remotePort user@host
ExecStop=/bin/kill $MAINPID

[Install]
WantedBy=multi-user.target

方法2: 反向隧道

[Unit]
Description=AutoSSH reverse tunnel
After=network-online.target
Wants=network-online.target

[Service]
User=fsz
Environment="AUTOSSH_GATETIME=0"
ExecStart=/usr/bin/autossh -N -R 2222:localhost:22 user@host
Restart=always
RestartSec=10

[Install]
WantedBy=multi-user.target

进程管理

# 查看服务日志
journalctl -u auto-ssh-tunnel.service

# 一键杀死所有 autossh
ps -aux | grep autossh | grep -v grep | awk '{print $2}' | xargs sudo kill

# 温和终止
sudo pkill autossh

# 强制终止
sudo pkill -9 autossh

登录日志检查

# 查看失败登录
grep "Failed password" /var/log/auth.log

# 查看成功登录
grep "Accepted password" /var/log/auth.log

环境变量加载

# 从 .env 文件加载
export $(cat .env | xargs)

# 跳过注释和空行
export $(grep -v '^#' .env | xargs)

组权限管理

# 查看 adm 组成员
grep ^adm: /etc/group

# 添加用户到 adm 组(查看日志)
sudo usermod -aG adm 用户名
newgrp adm

# 从 adm 组移除用户
sudo gpasswd -d 用户 adm

scp 命令

# 指定端口传输
scp -P 2233 fileName server@hostname:path

注意: -P 参数必须紧跟 scp,不能放在末尾

关键要点

  • -f 后台运行,-N 不执行远程命令,-C 压缩数据
  • autossh 自动重连,适合长期隧道
  • newgrp 不退出终端即可切换有效用户组
  • 结合 Fail2Ban 可增强 SSH 安全性

相关实体

  • SSH - 安全外壳协议
  • autossh - SSH 自动重连工具
  • 端口转发 - 网络端口转发技术
  • systemd - 系统服务管理