远程SSH连接服务与基本排错经验总结

为什么要远程连接Linux系统??

在实际的工作场景中,虚拟机界面或物理服务器本地的窗口都是很少能够接触到的,因为服务器装完系统后,都要拉到IDC机房托管,如果是购买了云主机,更碰不到服务器本地显示器了,此时,只能通过远程连接的方式管理Linux系统。因此,在装好linux系统后,学习Linux运维的第一步应该是配置好客户端软件远程(通过ssh软件进行连接)连接Linux系统进行管理

telnet连接服务器是明文的,非加密的; 默认为23端口

SSH连接服务器是加密的连接; 默认为22端口

ssh连接示意

服务器端===>通过ssh协议提供===>守护进程sshd监听22端口(不断的监听是否有人需要服务)

客户端(客户):ssh协议,ip地址,端口号(需要什么服务),用户名,密码

如何查看Linux系统的IP地址??

如图所示,我的Linux系统IP为192.168.179.133。

可以通过这两个命令来查看IP地址

ip地址/24:代表子网掩码255.255.255.0
lo:回环网卡:用于检测设备自测
eth0:你的第一块网卡
eth1:你的第二块网卡

ifup 网卡名与ifconfig 网络名 up的区别

假如你发现你的虚拟机没有IP地址的话,那么也许你的网卡设备处于关闭状态

方法一:ifup + 网卡名(ethx) 可以开启设备

方法二:ifconfig +网卡名(ethx)+ up 也可以开启设备

讨论

既然这两个命令都能开启成功,那么它们到底有没有区别呢?请跟随我来做个实验。

第一步:我们删掉eth1网卡的配置文件

/etc/sysconfig/network-scripts/:这个路径是网卡配置文件的路径,作为运维人员我们是必须熟记得

第二步,我们关闭eth1这个网卡设备

第三步,我们尝试开启这个设备

继续讨论

为什么我们的试验结果是这样的呢?当我删除了eth1这个网卡的配置文件,ifup这个命令就失灵了?

•这是因为,ifup/ifdown这个命令控制的实际上并不是物理网卡的开启和关闭,而实际上他控制的仅仅是网卡的配置文件而已,它是通过网卡配置文件间接的操作网卡设备。

•而ifconfig xxxx up/down:则是控制物理网卡设备的开启和关闭,因此并不受配置文件的干扰。

CRT远程连接的基本原理

•我们在前几节中提到过,sshd这个服务,实际上是服务器的一个守护进程。

•正是因为存在这个守护进程,因此服务器的22端口才会持续不断的被监听(监视)

•当CRT通过ssh协议访问服务器的22端口的时候,服务器的sshd服务才会马上回应这个访问,因此才能进行远程连接

•故,当服务器不存在sshd(把进程kill掉)这个服务时,xshell是无法通过ssh协议进行远程访问的。

当我远程用CRT执行命令kill 1486进程后,只剩下当前CRT连接Linux的sshd进程(Pid=19130)。即 我若想在CRT再开一个会话连接Linux,是绝对连不上的。

如果服务器端sshd服务被未运行,那么所有通过ssh协议的访问都将失败(包含xshell,CRT)

当sshd这个服务监听的不再是22端口时(通过配置文件可以改),CRT必须切换到它监听的端口进行访问才能正确连接。

总结:

ifconfig + 网卡名:可以查看开启状态的网卡的IP地址(看不到关闭状态的网卡设备)

ip a:可以查看所有网卡的IP地址(还能看到关闭状态的网卡)

ip link:可以查看所有网卡的物理状态

ifup/ifdown + 网卡名:通过网卡配置文件来开启和关闭网卡设备

ifconfig 网卡名 up/down:直接关闭和开启网卡设备。

通过kill + Pid号 或者pkill + 服务名称 来杀掉进程

sshd服务的配置文件路径:/etc/ssh/sshd_config

网卡的配置文件路径:/etc/sysconfig/network-scripts/ifcfg-网卡名

netstat -antup或ps -ef :可以用来查看当前服务器开启的所有服务

故障排查(通过ssh工具无法连接Linux主机)

1、两个机器之间物理网络是否通畅(网线网卡,IP是否正确)

ping 192.168.xx.xx ====>在当前的CRT或xshell下ping Linux系统,看物理网络是否通畅

2、防火墙或selinux是否处于开启状态

SELinux(Security-Enhanced Linux)是美国国家安全局(NSA)对于强制访问控制的实现,这个功能让系统管理员又爱又恨,这里我们还是把它关闭了吧,至于安全问题,后面通过其他手段来解决,这也是大多数生产环境的做法,如果非要开启也是可以的。关闭方式如下:

命令说明

setenforce:用于命令行管理SELinux的级别,后面的数字表示设置对应的级别
getenforce:查看SElinux当前的级别状态

提示:修改配置SElinux后,要想使生效,必须要重启系统。因此,可配合使用setenforce 0 这个临时关闭的命令,这样在重启前后都可以使得SElinux关闭生效了,也就是说无需立刻重启服务器了,在生产环境下Linux机器是不能随意重启。

3、查看服务器的服务进程是否处于开启状态(sshd)

netstat -antup或ps -ef :可以用来查看当前服务器开启的所有服务

4、查看服务器的ssh端口是否改变

sshd服务的配置文件路径:/etc/ssh/sshd_config

(0)

相关推荐

  • 远程SSH连接服务与基本排错经验总结

    为什么要远程连接Linux系统?? 在实际的工作场景中,虚拟机界面或物理服务器本地的窗口都是很少能够接触到的,因为服务器装完系统后,都要拉到IDC机房托管,如果是购买了云主机,更碰不到服务器本地显示器了,此时,只能通过远程连接的方式管理Linux系统.因此,在装好linux系统后,学习Linux运维的第一步应该是配置好客户端软件远程(通过ssh软件进行连接)连接Linux系统进行管理 telnet连接服务器是明文的,非加密的; 默认为23端口 SSH连接服务器是加密的连接; 默认为22端口 ss

  • Mac通过不同终端SSH连接远程服务器的讲解

    Mac使用Shell(终端)SSH连接远程服务器 前提:要有你需要连接的服务器的ip,端口号,服务器上的账户和密码 1.首先打开终端,然后输入sudo su - 回车进入根目录 2.然后输入:ssh -p 端口号 服务器用户名@ip (例如ssh -p 22 userkunyu@119.29.37.63)回车,到这会让你输入yes或者no来确认是否连接,输入yes回车 3.然后输入在服务器上的用户密码回车 4.到此进入的是你在服务器上的账户的目录,即为连接成功,最后输入sudo su -进入服务

  • pycharm通过ssh连接远程服务器教程

    由于想要使用pycharm连接Window子系统Ubuntu进行开发,找了很多教程都不够详细,花了点儿时间,最后配置成功. 将pycharm连接Window子系统的配置过程总结如下,连接其它远程服务器的过程相同: 一.Ubuntu配置 1.首先安装 ssh server: > sudo apt-get install openssh-server 2.修改 ssh server 配置: > sudo vim /etc/ssh/sshd_config 需要修改以下几项: Port 2222 #默

  • mac使用Shell(终端)SSH连接远程服务器的方法

    前提:要有你需要连接的服务器的ip,端口号,服务器上的账户和密码 1.首先打开终端,然后输入sudo su - 回车进入根目录 2.然后输入:ssh -p 端口号 服务器用户名@ip (例如ssh -p 22 userkunyu@119.29.37.63 )回车,到这会让你输入yes或者no来确认是否连接,输入yes回车 3.然后输入在服务器上的用户密码回车 4.到此进入的是你在服务器上的账户的目录,即为连接成功 最后输入sudo su -进入服务器的根目录,进行操作 连接设置别名 使用vi命令

  • scrapy框架中用ssh连接远程服务器的实现

    目录 挖坑 填坑 开搞 代码 Mysql相关问题 mysql开放3306端口 防火墙开放3306端口 开放3306端口 小结 前段时间用scrapy尝试抓取一些数据,写的时候真的很酸爽,眼睛要花掉了 但是!我没有存到数据库中,也就是说我只是确认了爬虫的代码没问题(草)为什么我要用服务器的mysql,本地的不好吗? 其实是我没有在本地装MySQL,但是我有服务器,再加上有phpmyadmin这么友好的web-base数据库管理工具,干嘛还折腾本地装软件 挖坑 其实刚开始写的时候,我是把数据库这模块

  • Pycharm内置终端及远程SSH工具的使用教程图文详解

    1.主题 如何使用Pycahrm内置终端以及远程SSH工具. 2.准备工作 Pycharm版本为3.0或更高 连接SSH服务器 3.使用SSH客户端 4.开启连接 选择Tools | Start SSH Session...的主菜单命令,单击Edit credentials: 5.提供连接信息 在Session对话框中输入建立连接所需相关信息: 6.建立连接 单击OK,连接开始: 7.SSH会话功能 运行命令.粘贴复制.浏览历史命令-- 8.远程SSH外部工具的作用 定义一个外部工具用来脱机运行

  • 使用ssh连接docker服务器的方法

    我刚接触docker时,是真的懵,看了半天菜鸟教程也不会使,现在至少了解了docker是一个容器,里面可以放各种软件,放了ubuntu的话,这个容器就可以看做ubuntu在其他环境使用. 下载 就按照教程中的来,没啥好说的,放出菜鸟里的安装教程 https://www.runoob.com/docker/windows-docker-install.html 主要说一下怎么创建一个docker服务,让别人可以通过ssh来连接使用(以ubuntu为例) 创建容器 需要镜像,使用过ubuntu等镜像

  • Python用SSH连接到网络设备

    0. 前言 自上一篇文章<用python怎么telnet到网络设备>,简单使用了telnetlib库给大家演示了下,但是,现实环境中仍不建议去使用telnet. SSH(Secure Shell)协议也是属于TCP/IP协议族里的一种,端口号22,可以代替telnet来远程管理的一种方法. SSH提供了双向认证.数据加密等方法保证数据的安全性,推荐使用SSHv2版本 1. 测试环境及关键代码解释 1.1 简单测试环境 使用python3环境 使用第三方Netmiko模块(基于Paramiko库

  • Go语言利用ssh连接服务器的方法步骤

    学习了Go语言后,打算利用最近比较空一点,写一个前端部署工具,不需要每次都复制粘贴的麻烦,需要完成部署的第一步就需要连接远程服务器 打开 ssh server 首先我们想要利用ssh连接服务器的前提是服务器打开了ssh server,ssh 分为client和server端 ,如果打开了client可以连接远程服务器,打开了server就可以被连接. 因为linux网上教程很多,windows比较少,所以这里只写windows版本的, 首先我们一般用Open SSH这个工具打开服务,window

  • Python远程SSH库Paramiko详细操作

    目录 核心组件 SSHClient常用方法 SFTPClient常用方法 使用示例 SSH私钥创建 SSHClient运行命令 SFTPClient下载文件 paramiko是用python语言写的一个模块,遵循SSH2协议,支持以加密和认证的方式,进行远程服务器的连接.paramiko支持Linux, Solaris, BSD, MacOS X, Windows等平台通过SSH从一个平台连接到另外一个平台.利用该模块,可以方便的进行ssh连接和sftp协议进行sftp文件传输. paramik

随机推荐