环境准备系列——使家里的工作站在公网上也可以通过ssh进行访问

一、基础配置:启用SSH服务与端口开放

  1. 安装SSH服务
    • Ubuntu/Debian系统:sudo apt update && sudo apt install openssh-server
    • CentOS系统:sudo yum install openssh-server
    • 启动服务:sudo systemctl start sshd && sudo systemctl enable sshd

  2. 修改默认端口(推荐)
    • 编辑配置文件:sudo vi /etc/ssh/sshd_config
    • 修改Port 22为其他端口(如2222),避免扫描攻击
    • 重启服务:sudo systemctl restart sshd


二、直接访问方案:公网IP+端口转发

适用条件:家庭宽带拥有公网IP(需向运营商申请)

  1. 获取公网IP
    • 通过curl ifconfig.me或访问https://www.whatismyip.com/查看当前IP

  2. 配置路由器端口转发
    • 登录路由器管理界面(通常为192.168.1.1
    • 在端口转发/虚拟服务器页面添加规则:
    ◦ 外部端口:自定义(如2222
    ◦ 内部IP:服务器局域网IP(如192.168.1.100
    ◦ 内部端口:SSH服务端口(如22或自定义端口)

  3. 公网访问命令

    ssh username@公网IP -p 2222
    

三、动态IP解决方案:DDNS动态域名绑定

适用条件:公网IP动态变化时自动解析

  1. 注册DDNS服务
    • 选择服务商(如No-IP、DynDNS),获取形如yourname.ddns.net的域名

  2. 配置DDNS客户端
    • 在路由器或服务器安装客户端,输入账号与域名
    • 示例(OpenWRT路由器):

    opkg update
    opkg install ddns-scripts
    vi /etc/config/ddns # 填写服务商提供的更新URL
    
  3. 访问方式

    ssh [email protected] -p 2222
    

四、无公网IP方案:FRP内网穿透

适用条件:无公网IP时通过第三方服务器中转

  1. 准备公网服务器
    • 购买云服务器(如阿里云),安装FRP服务端:

    wget https://github.com/fatedier/frp/releases/download/v0.53.0/frp_0.53.0_linux_amd64.tar.gz
    tar -zxvf frp_0.53.0_linux_amd64.tar.gz
    cd frp_0.53.0_linux_amd64
    

    • 配置frps.ini

    [common]
    bind_port = 7000
    token = your_secure_token
    
  2. 家庭服务器配置FRP客户端
    • 编辑frpc.ini

    [common]
    server_addr = 云服务器公网IP
    server_port = 7000
    token = your_secure_token
    
    [ssh]
    type = tcp
    local_ip = 127.0.0.1
    local_port = 22
    remote_port = 6000
    

    • 启动服务:nohup ./frpc -c frpc.ini &

  3. 通过云服务器访问

    ssh username@云服务器IP -p 6000
    

五、安全加固措施

  1. 密钥认证替代密码
    • 生成密钥对:ssh-keygen -t ed25519
    • 上传公钥:ssh-copy-id -i ~/.ssh/id_ed25519.pub username@server_ip -p 2222

  2. 防火墙限制
    • 仅允许特定IP访问SSH端口:

    sudo ufw allow from 123.45.67.89 to any port 2222
    sudo ufw enable
    
  3. Fail2Ban防护
    • 安装:sudo apt install fail2ban
    • 配置:sudo vi /etc/fail2ban/jail.local,设置maxretry=3bantime=1h


方案对比与选择建议

方案 优点 缺点 适用场景
公网IP+端口转发 延迟最低,无需第三方 依赖公网IP且需静态IP 企业级或固定IP用户
DDNS动态解析 解决动态IP问题 需维护DDNS服务 家庭宽带动态IP用户
FRP内网穿透 无公网IP可用 依赖云服务器,有延迟 无公网IP或临时需求

操作优先级建议:先尝试申请公网IP+DDNS方案(延迟最低),若无公网IP则使用FRP穿透。所有方案均需配合密钥认证和防火墙加固。

你可能感兴趣的:(工具,ssh,运维)