V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
wrcbrrdharm
V2EX  ›  问与答

求救:改掉 SSH 的默认 22 端口后无法用 SSH key 登录

  •  
  •   wrcbrrdharm · 2016-04-26 15:06:58 +08:00 · 7769 次点击
    这是一个创建于 3130 天前的主题,其中的信息可能已经有所发展或是发生改变。

    在 vps 的 root 账户下

    yum install vim-enhanced.x86_64 
    
    vim /etc/ssh/sshd_config #按 i 进入编辑
     
    确保(去掉注释#)
    RSAAuthentication      yes  #允许 RSA 认证
    PubkeyAuthentication   yes  #允许公钥认证
    PermitRootLogin        no  #禁止 ROOT 通过 SSH 登陆
    PasswordAuthentication  no  #禁止密码登陆
    ChallengeResponseAuthentication no # 禁止使用任何的密码登陆
    修改端口, 将 #Port 22 改为  Port XXX #改掉默认端口
    按 esc 退出编辑,:wq  #保存并退出 sshd_config
    
    service sshd restart
    Stopping sshd:                                             [  OK  ]
    Starting sshd:                                             [  OK  ]
    

    然后

    service iptables start #直接启动 iptables 服务。
    iptables -A INPUT -p tcp --dport XXX -j ACCEPT
    iptables -I OUTPUT -p tcp --sport XXX -j ACCEPT
    service iptables save  #保存
    Saving firewall rules to /etc/sysconfig/iptables:[  OK  ]
    

    control+D 断开 SSH 的连接

    我尝试在本地建立一个 config

    vi ~/.ssh/config  #在私钥所在的.ssh 文件夹内新建一个 config 文件
     
    按 i 编辑,复制以下内容
    Host vps                                 #这个名字随意,感觉像调用函数
    HostName IP_address            #IP 地址或服务器域名
    Port XXX                      #服务器端开放的 ssh 端口  之前把 22 改为 XXX
    User 非 root                                     #登录的用户名
    IdentityFile ~/.ssh/id_rsa        #使用的密钥文件密钥文件,本地私钥地址
     
    按 esc 退出编辑,输入:wq 退出并保存
    
    ssh vps
    ssh: connect to host IP_address port XXX: Connection refused
    

    我之前设置SSH key的时候有Enter passphrase (empty for no passphrase): 123456 和这个有关吗?

    24 条回复    2016-04-28 23:32:31 +08:00
    wrcbrrdharm
        1
    wrcbrrdharm  
    OP
       2016-04-26 15:26:12 +08:00
    VPS vultr
    OS X centos 6

    本地用 vpn 联网
    wrcbrrdharm
        2
    wrcbrrdharm  
    OP
       2016-04-26 15:29:24 +08:00
    没改 /etc/ssh/sshd_config 前可以用 ssh -i /Users/.ssh/id_rsa A@IP 登陆
    zent00
        3
    zent00  
       2016-04-26 15:45:57 +08:00 via iPhone
    从你提供的信息来看,建议把完整的 iptables 规则贴出来。
    wrcbrrdharm
        4
    wrcbrrdharm  
    OP
       2016-04-26 15:48:57 +08:00
    @zent00 我现在无法登陆了 只能 destory 重建一个吗?
    qgy18
        5
    qgy18  
       2016-04-26 15:51:25 +08:00 via iPhone
    @wrcbrrdharm 哪一家的 vps ?一般都可以通过 web 页面进入系统。
    TakanashiAzusa
        6
    TakanashiAzusa  
       2016-04-26 15:53:53 +08:00 via Android
    Vultr 有后台的 web 管理,可以进去

    另外测试 ssh 不需要断开当前链接,直接新开一个就好。。当前的就是后备手段啊
    cxbig
        7
    cxbig  
       2016-04-26 15:58:48 +08:00
    从描述看本地 config 没有问题,也不关 passphrase 的事,查看以下本地的 ssh log 看看?
    wrcbrrdharm
        8
    wrcbrrdharm  
    OP
       2016-04-26 15:58:57 +08:00
    @qgy18 vultr
    TakanashiAzusa
        9
    TakanashiAzusa  
       2016-04-26 16:01:32 +08:00 via Android
    话说 iptables 保存后不应该重启吗?
    zent00
        10
    zent00  
       2016-04-26 16:02:31 +08:00 via iPhone
    后台面板里通过 View Console 可以登录。
    etfpyrzrklasem
        11
    etfpyrzrklasem  
       2016-04-26 16:29:30 +08:00
    被限制 1800S 后才能回复了

    @zent00

    @TakanashiAzusa
    登陆了,也‘ service iptables restart ’
    ![Screen Shot 2016-04-26 at 16.29.31.png]( https://ooo.0o0.ooo/2016/04/26/571f2845d3771.png)
    etfpyrzrklasem
        12
    etfpyrzrklasem  
       2016-04-26 16:30:10 +08:00
    etfpyrzrklasem
        13
    etfpyrzrklasem  
       2016-04-26 16:31:38 +08:00
    看起来‘ iptables -A INPUT -p tcp --dport XXX -j ACCEPT ’好像没起作用?
    oxoxoxox
        14
    oxoxoxox  
       2016-04-26 16:59:58 +08:00
    @etfpyrzrklasem 难道不应该是 INPUT 规则中的 5 在 6 的后面吗?
    etfpyrzrklasem
        15
    etfpyrzrklasem  
       2016-04-26 18:50:40 +08:00
    @oxoxoxox
    @zent00
    @TakanashiAzusa
    @cxbig
    @qgy18
    感谢帮助 通过删除 input 第五条规则搞定了
    cxbig
        16
    cxbig  
       2016-04-26 18:55:43 +08:00
    @TakanashiAzusa
    1. iptables 没有重启的概念,执行新的 config 就立刻生效
    2. 管理服务器的基本理念之一就是:如无必要绝不重启
    TakanashiAzusa
        17
    TakanashiAzusa  
       2016-04-26 18:58:02 +08:00 via Android
    @cxbig 这样么,因为我看 iptables 本身也是个服务。。然后很多提到这个更改的文章都表示要重启。。
    zent00
        18
    zent00  
       2016-04-26 19:20:59 +08:00 via iPhone
    你应该使用 iptables -I INPUT 5 来将新的规则插入到第五条,而不是简单粗暴地将现有的第五条规则删掉。
    zent00
        19
    zent00  
       2016-04-26 19:24:15 +08:00 via iPhone
    忘了说, iptables -I OUTPUT -p tcp --sport XXX -j ACCEPT 这条规则是多余的。
    etfpyrzrklasem
        20
    etfpyrzrklasem  
       2016-04-26 19:50:01 +08:00
    @zent00 我是删掉之后再重新把原第 6 条规则加上
    iptables -A INPUT -p all -j REJECT

    现在我装了 SS 但是只能打开 google youtue twitter facebook 都打不开,偶尔 google 也打不开。 443 和 80 都试过了。

    ping 大概 100ms 左右
    etfpyrzrklasem
        21
    etfpyrzrklasem  
       2016-04-26 19:50:35 +08:00
    只能打开 google , youtue twitter facebook 都打不开
    etfpyrzrklasem
        22
    etfpyrzrklasem  
       2016-04-26 19:56:33 +08:00
    vi /var/log/shadowsocks.log 可以看到的确是启动了

    2016-04-26 11:46:49 INFO starting server at XXX:443
    2016-04-26 11:54:27 INFO starting server at XXX:443
    ryd994
        23
    ryd994  
       2016-04-26 21:15:22 +08:00
    PermitRootLogin no
    你是用什么用户登录的?
    wrcbrrdharm
        24
    wrcbrrdharm  
    OP
       2016-04-28 23:32:31 +08:00
    @ryd994 非 ROOT 用户啊,可以用 sudo su 转
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5368 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 31ms · UTC 07:27 · PVG 15:27 · LAX 23:27 · JFK 02:27
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.