SSH 远程连接原理及故障排错详解

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SSH 远程连接原理及故障排错详解相关的知识,希望对你有一定的参考价值。

1、SSH 远程连接介绍

最常用的 Linux 提供远程连接服务的工具就是 SSH 软件,SSH 分为 SSH 客户端和 SSH 服务端两部分。其中,SSH服务端包含的软件程序主要有 openssl 和 openssh,在 Linux 系统中可以按如下方法查询 SSH 服务端工具的安装情况。

# rpm -qa openssl openssh

技术分享

其中,openssh 是提供 SSH 服务的程序,openssl 是为 SSH 提供连接加密的程序。


2、SSH 服务端介绍

启动 Linux 系统时,默认情况下,SSH 服务端程序就会随系统一起启动,SSH服务是一个守护进程(demon),它在系统后台永久运行并时刻响应来自所有 SSH 客户端的连接请求。SSH 服务端的进程名为 sshd,负责实时监听远程 SSH 客户端的连接请求并进行处理,这些请求一般包括公共密钥认证、密钥交换、对称密钥加密和非安全连接等。SSH 服务是系统优化时需要保留开机自启动的服务之一。


3、SSH 客户端介绍

SSH 客户端最常用的工具就是 Windows 平台的 SecureCRT 了,该工具安装很简单,按提示一步步操作即可,然后打开注册软件,运行就可以使用了,除 SecureCRT 软件之外,还有 xshell、putty 等常用软件以及 Linux 下的 ssh 客户端。


4、SSH 是专门为远程登录会话和其他网络服务提供的安全协议,端口号 22

5、SSH 有两个不兼容的版本:SSHv1   SSHv2,如同 windows 的 win7 与 xp

6、telnet 协议,端口号 23


========================================================


故障解决思路:

1、先 ping ip地址 -t:检查物理链路是否通

2、telnet ip地址 端口:检查服务是否通;

如果不通,则检查:

a)服务器防火墙;

b)ssh 服务是否开启;

c)客户端和服务端是不是在一个网段

关闭 Linux 防火墙的方法为:# /etc/init.d/iptables stop  ---> 最好连续执行两遍

# /etc/init.d/iptables stop  等同于  # service iptables stop


===========================================================


更改 SSH 服务端远程登录的配置

windows 服务器的默认远程管理端口是 3389,管理员是administrator,普通用户是 guest。Linux 的管理用户是 root,远程管理端口是 22,普通用户默认有很多

ssh服务,它服务的启动文件是sshd。

在Linux里,我们怎么控制一个服务呢,控制一个软件的运行呢?通过更改它的配置

那 ssh 这个服务,它对应的一个配置文件是 cd /etc/ssh/sshd_config

修改配置文件之前先备份 # cp /etc/ssh/sshd_config  /etc/ssh/sshd_config.oldboy.20160903

# vim sshd_config

:set nu   ---> 输入 行号gg  --->就跳到指定的行号  eg:98gg 


配置文件修改如下:

13行 Port 52113       --->范围是:0~65535

122行 UseDNS  no      --->取消注释,改成 no。 

这个是你访问百度网站,它给i解析成IP地址,这个解析很慢,我们自己连接都是IP连接,所以我们不需要解析,这样连接的就比较快。

42行 PermitRootLogin no --->我们不允许root通过ssh连接。

本地切换角色,用树切没问题,但不允许远程连,禁止管理员远程连接。

15行 ListenAddress 192.168.186.134  --->把这个监听的IP地址改成你服务器的内网的IP地址,

也就是说你将来的服务器可能会有eth0网卡,这个网卡是外面所有的人都能访问到的,它能够勾到你,就有可能连到你ssh;你有可能机器有两块网卡,还有一块eth1,这是内网卡,所以你要限定,只有访问你内网卡,这个ssh服务才会去响应这个请求,你访问外网,根本连不上我ssh服务

80行 GSSAPIAuthentication no  ---> 我们将来远程连接的时候,特别是一台机器管理一堆机器时,它的ssh连接会比较慢,我们解决两台机器连接比较慢的问题,要把这个参数调成no


Linux 它所有的配置文件基本都是放在内存里,所以你现在改的配置文件仅仅是改磁盘上的,这个文件还没生效,所有通过重启这个服务,让它把配置读到内存里,然后才能生效,所以重启服务:

# /etc/init.d/sshd restart   或

# /etc/init.d/sshd reload ----> reload 是一个平滑重启的模式






以上是关于SSH 远程连接原理及故障排错详解的主要内容,如果未能解决你的问题,请参考以下文章

Linux的学习笔记-ssh远程连接排错

远程SSH连接服务与基本排错

远程SSH连接服务与基本排错

SSH连接原理及ssh-key讲解

Debian 打开SSH服务以及SSH基本排错方法

SSH介绍及连接原理