昨天在公司搞一台测试用的服务器,同事能ssh上去,我却不行,但是我能ping通这台服务器,奇怪,怎么会不行呢?我只知道是用ssh命令,却不知道别的(后面你就知道我不知道什么了。)当时也没问同事为什么他能连上,我的连不上(虽然我很想问。。。),自己跑去机房用netstat -anp | grep ssh来看了,原来端口变为3xxx了,修改了默认端口!被叫去干别的了,回来,服务器已关闭,只好回来自己在虚拟机上搞。
首先百度一下(google一直都连不上,可怜。。),网上一大堆教程,vim /etc/ssh/sshd_conf,注释#Port 22,添加Port 3xxx,重启xinetd服务,/etc/init.d/xinetd restart ,重启sshd服务/etc/init.d/ssh restart,到这里,修改其实已经OK的了,问题出在不会用ssh命令的人的身上!!!
依稀记得直接在后面加端口号就行的了,于是ssh user@IP:3xxx, 试了N遍,不行!这个过程中又换用debian 系统和rhel系统,又Port 22和Port 3xxx同时使用,还动了/etc/hosts.deny,和/etc/hosts.allow,还改了iptables ,各种折腾!还是不行!
人蠢真是没有办法啊,又不会man ssh来读一下文档,压根就没想到是自己的命令敲错了。良久,换用ssh user@IP 3xxx(把冒号换成了空格),这样很奇怪,不注释Port 22的时候就行,注释掉就不行了!但是这时也没想到为什么。于是,继续百度,看了N个别人的配置教程(其实都一个样的),终于看到有一个用了ssh -p 3xxx user@IP 这样的命令!神啊,终于找到了!!!就是它!!!原来是这样指定端口的!!!在debian和rhel系统畅通无阻。
我就很纳闷,为什么那些写教程的人就不会多写一点点呢?!在后面加一行,教人家怎么用这条命令嘛:ssh -p port user@IP 这样登录!!这样不就一次满足了我们这些菜鸟的所有要求了么?这么简单的配置,居然用了我几个小时,所以记下来,希望以后不会再忘记,不再范类似愚蠢的错误!