在之前的linux服务器远程复制文件/目录,远程上传文件/目录以及ssh远程连接中,主要说明了操作步骤和一些基本的原理。这里主要介绍一下几个常见的远程访问协议:telnet,rlogin,ssh。

  一般来说,不管什么协议,大体上的访问步骤基本是确定的:
1.两台机器上安装对应协议的server和client
2.服务端启动,并做好相应的配置
3.客户端发起远程链接,与远程的服务端进行交互

  有了上述认知,那么不论我们使用什么样的远程访问软件,图形化的也好,命令形式的也好,只要抓住两个最关键的点就行:一个是协议;一个是端口号,端口号就是这个服务端启动时配置的端口。其它的参数如ip,账号密码这些都是必须的,但都很容易理解。

【Telnet】
Windows上这个用的还是比较多,虽然不安全,但是一些简单的试探性地工作可以交由它来完成,主要是图个方便。
Telnet分为telnet-server和telnet两个安装包,一个服务端,一个客户端,一般系统是默认安装了telnet的。如果在cmd打开后发现:

那就说明在你的电脑中telnet客户端没有安装,安装的流程如下图。这里是win10版本的,其它版本的可以自行搜索解决:

与ping不同的是,这个telnet是可以直接尝试去连接某个具体的端口。
在实际开发场景中,我经常会遇到服务器的某个服务无法访问的情况。由于我们使用的是阿里云服务器,里面很多端口是需要特定的配置才会被外部访问到,但是拥有权限的配置人员经常记不清楚到底是开了还是没开,这里就可以使用到telnet进行快速验证:

telnet ip/domain port

如果链接成功,则进入到一个闪烁游标的黑屏;如果链接失败,则会显示不能打开到主机的链接:

链接成功后,使用Ctrl+]可以看到操作界面:

 

另外,我也经常会使用telnet来检查dubbo服务的相关信息。
cmd中输入<telnet ip dubbo服务端口>见到闪烁游标的黑屏后,键入Enter,即可使用一些命令查看dubbo服务的情况:

你甚至可以输入接口参数调用dubbo服务,这里不展开,可以自行搜索。
与ssh相比,telnet的明文传输是很不安全的,部分Linux服务器甚至已经不支持使用telnet进行通讯,但很多时候我们还是可以简单使用telnet帮助我们快速定位问题。
本质上来说,telnet就是我们从客户端输入,再通过telnet客户端经由TCP协议链接到telnet服务端,服务端根据接收到的内容伪装成一个终端登录到服务器中执行命令。如图:

【Rlogin】
Rlogin与Telnet类似,但是简单很多。

【SSH】
Secure Shell的缩写,与前两个协议相比,ssh是安全的,它是专为远程登录会话和其他网络服务提供安全性的协议。它通过将报文不对称加密,通过公钥私钥加密解密的方式保证了传输内容的安全性。
它的工作原理,在ssh远程连接一文中已经展示。默认端口22,当然你也可以配置。安全协议版本是SSH2(还有个SSH1版本,有缺陷)。
在linux服务器中,我们可以在/etc/ssh/目录下看到相关的配置文件:

其中moduli是一个模数文件,存放着多组模数信息。在ssh进行dh密钥交换时会用到,我对它也没有深入了解,读者可以自行研究。
剩下的key和key.pub是对应到不同host生成的公钥私钥对。剩下的ssh_config是ssh客户端的配置文件,而sshd_config是ssh服务端的配置文件。一般都是使用默认的配置,如果你想将其改造,比如修改端口,可以在服务端配置中修改对应内容。以下是几个比较常用的命令:

查看是否已经安装了ssh、安装ssh

rpm -qa|grep ssh
yum -y install ssh

ssh服务的启动与停止

systemctl start sshd
systemctl stop sshd

 

posted on 2021-09-04 17:00  长江同学  阅读(1232)  评论(0编辑  收藏  举报