V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
pei1025
V2EX  ›  Linux

ssh 公网 IP 连不上服务器

  •  
  •   pei1025 · 247 天前 · 2439 次点击
    这是一个创建于 247 天前的主题,其中的信息可能已经有所发展或是发生改变。
    1.有公网 IP ,并且用了 curl ifconfig.me 检测了。
    2.sudo ufw status 看到防火墙规则 22 Allow Anywhere ,并且 sshd.conf 里 port 是 22;
    3.局域网内 ssh 能正常连接,就是公网 IP 连不上,报错:Permission denied
    求解,是不是还有哪里做了限制?
    27 条回复    2024-03-25 17:49:01 +08:00
    Chipmunker
        1
    Chipmunker  
       247 天前
    进调试模式看看啊,在 ssh 连接时加参数“-vvv”。
    pei1025
        2
    pei1025  
    OP
       247 天前
    @Chipmunker 大概就是建立连接,然后到我 C 盘找私钥但是没有:.ssh/id_rsa: No such file or directory
    ;最后使用密码登录,然后报错 Permission denied.密码肯定没错的,局域网能正常连。
    cnbatch
        3
    cnbatch  
       247 天前   ❤️ 1
    在服务器那边用命令 journalctl -u ssh 看看对应时段的报错是什么,这样应该更容易排查
    hqt1021
        4
    hqt1021  
       247 天前 via Android
    Permission denied 是验证失败
    可以看看/etc/ssh/sshd_config 是否设置了什么东西
    cnt2ex
        5
    cnt2ex  
       247 天前
    局域网能正常连的那台机器和你从公网连的机器是同一台吗?

    不是同一台的话估计是你没开密码认证,只开了公钥认证,而局域网的机器有公钥,公网机器没公钥。
    kitin
        6
    kitin  
       247 天前 via Android
    你是用自己的公网连公网?
    kitin
        7
    kitin  
       247 天前 via Android
    @kitin 同一公网下连接的吗?
    pei1025
        8
    pei1025  
    OP
       247 天前 via Android
    @cnt2ex sshd 里设置了 PasswordAuth yes ;用内网穿透工具后能连上,公网 IP 不行。telnet 公网 IP 22 又能连通,好奇怪。
    pei1025
        9
    pei1025  
    OP
       247 天前 via Android
    @kitin 家里连公司
    ik
        10
    ik  
       247 天前 via iPhone
    @pei1025 确定内网穿透和公网直连是同一台? 简单判断方法 看看指纹是否一致,看~/.ssh/know_hosts 文件,对应两行字断
    alect
        11
    alect  
       247 天前
    @pei1025 你这是想从家里访问公司局域网内部的一台服务器?然后这台服务器从公司局域网是正常访问的?
    请问你公司路由器有无做端口映射局域网对应 ip 的端口?请问贵公司允许这么操作么?有无安全隐患?
    niubee1
        12
    niubee1  
       247 天前
    你用 curl ifconfig.me 检测到的只是你从机器出去的 IP ,你需要 ifconfig 检查一下你每个网卡绑定的 IP 是多少,如果公网 IP 不是绑定到你的某个网卡上的话,能不能从外边进来就不是你这台机器能就决定的了。curl ifconfig.me 可能只是你的出口路由器拿到的公网 IP 而已
    shiyuu
        13
    shiyuu  
       247 天前
    可以试试换一个 ssh 终端,比如有的系统版本就是要用 xshell 才能连
    coolloves
        14
    coolloves  
       247 天前
    简单的网络环境说明下呢?
    以下是猜想
    听到局域网,那假设你是家庭使用,恰好路由器开了 ssh 服务,路由器拨号,你目前的这个 linux 机器是一台局域网的机器,本身应该是没有公网 ip 的,通过公网访问到了你的路由器
    coolloves
        15
    coolloves  
       247 天前
    @coolloves
    有公网 IP ,并且用了 curl ifconfig.me 检测了。
    这里顶多能说明你有外网访问,并无法说明你有公网 ip.
    pei1025
        16
    pei1025  
    OP
       247 天前 via Android
    @alect 想了一下,确实外网 ssh 密码太容易爆破了。还是算了
    pei1025
        17
    pei1025  
    OP
       247 天前 via Android
    @coolloves 公网 IP/可以访问到部署的项目
    ihainan
        18
    ihainan  
       247 天前
    试试换个端口,我之前是光猫开启 DMZ ,访问主路由 22 不行,翻日志翻防火墙设置都找不到线索,最后换个 10000+ 的端口就可以了。
    vsomeone
        19
    vsomeone  
       247 天前 via iPhone
    你如果挂了梯子,看看你的机场是不是关了 22 端口
    SenLief
        20
    SenLief  
       246 天前
    你的 ssh ip 有没有过梯子?如果有你把梯子关了试试。
    julyclyde
        21
    julyclyde  
       246 天前
    permission denied 显然是已经连上了啊
    要不然这句话谁发给你的
    skiy
        22
    skiy  
       246 天前
    同一台电脑吗?是不是密钥不对?公网的 IP ,连到路由上去了吧?
    coolloves
        23
    coolloves  
       246 天前
    @pei1025 这个也不一定说明你的机器有公网 ip 啊,如果是网络方面针对做了端口映射呢?所以,最好发出来你的网络环境在讨论吧
    jalena
        24
    jalena  
       246 天前
    你能确定你公网转发进去的就是你的那个主机?
    dbit
        25
    dbit  
       246 天前 via iPhone
    换个端口试试 运营商可能不许使用 80 443 22
    jiny2048
        26
    jiny2048  
       245 天前
    1. 公网连接 ssh 的方式是什么?
    2. 服务器 ssh 允许连接的方式是什么?
    kratosmy
        27
    kratosmy  
       245 天前
    被自己的 fail2ban 拦截了?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3649 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 04:30 · PVG 12:30 · LAX 20:30 · JFK 23:30
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.