遠程SSH連接服務與基本排錯

Linux 軟件 物理 防火牆 科技優家 2017-05-02

為什麼要遠程連接Linux系統??

在實際的工作場景中,虛擬機界面或物理服務器本地的窗口都是很少能夠接觸到的,因為服務器裝完系統後,都要拉到IDC機房託管,如果是購買了雲主機,更碰不到服務器本地顯示器了,此時,只能通過遠程連接的方式管理Linux系統。因此,在裝好linux系統後,學習Linux運維的第一步應該是配置好客戶端軟件遠程(通過ssh軟件進行連接)連接Linux系統進行管理

遠程SSH連接服務與基本排錯

telnet連接服務器是明文的,非加密的; 默認為23端口

SSH連接服務器是加密的連接; 默認為22端口

ssh連接示意

  • 服務器端===>通過ssh協議提供===>守護進程sshd監聽22端口(不斷的監聽是否有人需要服務)
  • 客戶端(客戶):ssh協議,ip地址,端口號(需要什麼服務),用戶名,密碼
遠程SSH連接服務與基本排錯

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

遠程SSH連接服務與基本排錯

如圖所示,我的Linux系統IP為192.168.179.133。

可以通過這兩個命令來查看IP地址

ip地址/24:代表子網掩碼255.255.255.0

lo:迴環網卡:用於檢測設備自測

eth0:你的第一塊網卡

eth1:你的第二塊網卡

ifup 網卡名與ifconfig 網絡名 up的區別

假如你發現你的虛擬機沒有IP地址的話,那麼也許你的網卡設備處於關閉狀態

遠程SSH連接服務與基本排錯

方法一:ifup + 網卡名(ethx) 可以開啟設備

方法二:ifconfig +網卡名(ethx)+ up 也可以開啟設備

遠程SSH連接服務與基本排錯

討論

既然這兩個命令都能開啟成功,那麼它們到底有沒有區別呢?請跟隨我來做個實驗。

  • 第一步:我們刪掉eth1網卡的配置文件

/etc/sysconfig/network-scripts/:這個路徑是網卡配置文件的路徑,作為運維人員我們是必須熟記得

第二步,我們關閉eth1這個網卡設備

遠程SSH連接服務與基本排錯

第三步,我們嘗試開啟這個設備

遠程SSH連接服務與基本排錯

繼續討論

為什麼我們的試驗結果是這樣的呢?當我刪除了eth1這個網卡的配置文件,ifup這個命令就失靈了?

  • 這是因為,ifup/ifdown這個命令控制的實際上並不是物理網卡的開啟和關閉,而實際上他控制的僅僅是網卡的配置文件而已,它是通過網卡配置文件間接的操作網卡設備。
  • 而ifconfig xxxx up/down:則是控制物理網卡設備的開啟和關閉,因此並不受配置文件的干擾。

CRT遠程連接的基本原理

  • 我們在前幾節中提到過,sshd這個服務,實際上是服務器的一個守護進程。
  • 正是因為存在這個守護進程,因此服務器的22端口才會持續不斷的被監聽(監視)
  • 當CRT通過ssh協議訪問服務器的22端口的時候,服務器的sshd服務才會馬上回應這個訪問,因此才能進行遠程連接
  • 故,當服務器不存在sshd(把進程kill掉)這個服務時,xshell是無法通過ssh協議進行遠程訪問的。
遠程SSH連接服務與基本排錯

當我遠程用CRT執行命令kill 1486進程後,只剩下當前CRT連接Linux的sshd進程(Pid=19130)。即 我若想在CRT再開一個會話連接Linux,是絕對連不上的。

如果服務器端sshd服務被未運行,那麼所有通過ssh協議的訪問都將失敗(包含xshell,CRT)

當sshd這個服務監聽的不再是22端口時(通過配置文件可以改),CRT必須切換到它監聽的端口進行訪問才能正確連接。

遠程SSH連接服務與基本排錯

總結:

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是否處於開啟狀態

遠程SSH連接服務與基本排錯

SELinux(Security-Enhanced Linux)是美國國家安全局(NSA)對於強制訪問控制的實現,這個功能讓系統管理員又愛又恨,這裡我們還是把它關閉了吧,至於安全問題,後面通過其他手段來解決,這也是大多數生產環境的做法,如果非要開啟也是可以的。關閉方式如下:

遠程SSH連接服務與基本排錯

命令說明

  • setenforce:用於命令行管理SELinux的級別,後面的數字表示設置對應的級別
  • getenforce:查看SElinux當前的級別狀態

提示:修改配置SElinux後,要想使生效,必須要重啟系統。因此,可配合使用setenforce 0 這個臨時關閉的命令,這樣在重啟前後都可以使得SElinux關閉生效了,也就是說無需立刻重啟服務器了,在生產環境下Linux機器是不能隨意重啟。

3、查看服務器的服務進程是否處於開啟狀態(sshd)

  • netstat -antup或ps -ef :可以用來查看當前服務器開啟的所有服務

4、查看服務器的ssh端口是否改變

  • sshd服務的配置文件路徑:/etc/ssh/sshd_config

相關推薦

推薦中...