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

2016-04-26 15:06:58 +08:00
 wrcbrrdharm

在 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 和这个有关吗?

7680 次点击
所在节点    问与答
24 条回复
wrcbrrdharm
2016-04-26 15:26:12 +08:00
VPS vultr
OS X centos 6

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

另外测试 ssh 不需要断开当前链接,直接新开一个就好。。当前的就是后备手段啊
cxbig
2016-04-26 15:58:48 +08:00
从描述看本地 config 没有问题,也不关 passphrase 的事,查看以下本地的 ssh log 看看?
wrcbrrdharm
2016-04-26 15:58:57 +08:00
@qgy18 vultr
TakanashiAzusa
2016-04-26 16:01:32 +08:00
话说 iptables 保存后不应该重启吗?
zent00
2016-04-26 16:02:31 +08:00
后台面板里通过 View Console 可以登录。
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
2016-04-26 16:30:10 +08:00
etfpyrzrklasem
2016-04-26 16:31:38 +08:00
看起来‘ iptables -A INPUT -p tcp --dport XXX -j ACCEPT ’好像没起作用?
oxoxoxox
2016-04-26 16:59:58 +08:00
@etfpyrzrklasem 难道不应该是 INPUT 规则中的 5 在 6 的后面吗?
etfpyrzrklasem
2016-04-26 18:50:40 +08:00
@oxoxoxox
@zent00
@TakanashiAzusa
@cxbig
@qgy18
感谢帮助 通过删除 input 第五条规则搞定了
cxbig
2016-04-26 18:55:43 +08:00
@TakanashiAzusa
1. iptables 没有重启的概念,执行新的 config 就立刻生效
2. 管理服务器的基本理念之一就是:如无必要绝不重启
TakanashiAzusa
2016-04-26 18:58:02 +08:00
@cxbig 这样么,因为我看 iptables 本身也是个服务。。然后很多提到这个更改的文章都表示要重启。。
zent00
2016-04-26 19:20:59 +08:00
你应该使用 iptables -I INPUT 5 来将新的规则插入到第五条,而不是简单粗暴地将现有的第五条规则删掉。
zent00
2016-04-26 19:24:15 +08:00
忘了说, iptables -I OUTPUT -p tcp --sport XXX -j ACCEPT 这条规则是多余的。
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 左右

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/274517

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX