1. 程式人生 > >遠端連線Linux 遠端連線Linux

遠端連線Linux 遠端連線Linux

遠端連線Linux

 

為什麼要遠端連線Linux

在實際的工作場景中,虛擬機器介面或者物理伺服器本地的終端都是很少接觸的,因為伺服器裝完系統之後,都要拉倒IDC機房託管,如果是購買的雲主機,那更碰不到伺服器本體了,只能通過遠端連線的方式管理自己的Linux系統。

因此在裝好Linux系統之後,使用的第一步應該是配置好客戶端軟體(ssh軟體進行連線)連線Linux系統。

通過什麼軟體呢?

Xshell
SecureCRT

遠端連線必備的知識

ip地址 > 伺服器的位置

網際網路上的計算機都會有一個唯一的32位的ip地址,如同家裡的門牌號,對應到伺服器的位置。

我們找人,可以通過身份證號碼對應某個人

那我們找到某臺伺服器,也必須是通過IP地址

區域網

(針對自己班級/家庭所在環境)裡也有預留的ip地址,一般是192/10/172開頭,區域網的IP地址也是唯一的。

windows檢視ip通過命令:

在cmd終端敲下:
ipconfig
檢視“乙太網介面卡 本地連線 IPv4”的Ip地址就是自身網線的ip地址了

Linux檢視ip方式:

方式1:ip addr
方式2: ifconfig

外網Ip

全世界哪裡都可以訪問,

虛擬機器網路配置

複製程式碼
host only 僅主機 單機模式,瞭解即可
電腦pc   >  皇帝
虛擬機器   >   老百姓

老百姓被皇帝控制,無法與外屆通訊





nat模式(網路地址轉換)
電腦pc  >    皇帝
nat     >    宰相
虛擬機器    >    老百姓

老百姓的房子是宰相分配的 與皇帝無關
虛擬機器的ip是nat分配的,電腦環境無論怎麼變化,都不會影響虛擬機器
好處:
在家,在學校,在公司,使用虛擬機器,ip地址都不會變化

橋接
電腦pc    >    皇帝
虛擬機器   >    老百姓
只要更換了一波皇帝,老百姓房子都得換
只要換了個教室,插上網線,ip就變了
好處:不用配置
壞處:更換ip麻煩
複製程式碼

 

NAT模式

電腦宿主機的ip在區域網內是唯一的,選擇了NAT模式建立虛擬機器,虛擬機器就是一個新的區域網

橋接模式

用此模式,就是區域網中一臺獨立的主機,它可以訪問該類網段任意一臺機器,

僅主機模式

單機模式

埠的概念 

一臺伺服器可以有一個ip地址,例如是192.168.11.1,伺服器是需要對外提供服務的,例如web服務,FTP服務。那麼僅憑ip地址,主機無法區分不同的服務,ip地址和網路服務是一對多的關係,一個ip提供多個服務,因此就有了“埠號”來區分不同的伺服器的。

埠(port)的設計規定是有65536這麼多埠,每個埠對應唯一的程式,0-1024埠之間被作業系統佔用,因此開發人員能使用的是1024-65536區間的埠。

ftp:23
dns:53
http:80
https:443
ssh:22

協議的概念

protocol是為網路中的資料交換而建立的規則、標準或者約定,兩個實體要通訊,必須有同一種語言。

常見協議有超文字傳輸協議(HTTP)、檔案傳輸協議(FTP),簡單郵件傳輸協議(SMTP)、網路通訊協議(TCP)、使用者資料報協議(UDP)

總結

ip  ip地址      找人,找伺服器  
port 埠號 提供什麼服務
protocol 協議 說什麼語言

第一次連線Linux

1.下載Xshell
2.命令:ssh ip  (預設22埠)

那麼問題來了。。。。

這個黑乎乎的是個什麼玩意?

Linux終端也稱為虛擬控制檯,Linux終端採用字元命令方式工作,使用者通過鍵盤輸入命令,通過Linux終端對系統進行控制
Linux是一個多使用者、多工、支援多執行緒和多CPU的作業系統

Linux切換虛擬終端

ctrl+Alt+F[1~6],如想切換到第二號虛擬終端,則同時按Ctrl+Alt+F2
掌握普通使用者登入後系統的提示符:$
掌握root使用者登入後系統的提示符:#

檢視終端資訊shell命令 

那麼如何檢視當前Linux的終端有哪些呢?

複製程式碼
命令,解釋
tty    檢視當前終端
who am i 僅顯示當前使用者正在使用的終端和登入時間
w       檢視所有終端(功能最全,顯示使用者名稱,終端標記,登入時間,負載等資訊)

 

複製程式碼

配置nat網路

https://www.cnblogs.com/pyyu/p/9689138.html

 

配置SSHD服務

  SSH(Secure Shell)是一種能夠以安全的方式提供遠端登入的協議,也是目前遠端管理 Linux 系統的首選方式。在此之前,一般使用 FTP 或 Telnet 來進行遠端登入。但是因為它們 以明文的形式在網路中傳輸賬戶密碼和資料資訊,因此很不安全,很容易受到黑客發起的中 間人攻擊,這輕則篡改傳輸的資料資訊,重則直接抓取伺服器的賬戶密碼。

  想要使用 SSH 協議來遠端管理 Linux 系統,則需要部署配置 sshd 服務程式。sshd 是基於 SSH 協議開發的一款遠端管理服務程式,不僅使用起來方便快捷,而且能夠提供兩種安全驗證的方法:

  1. 基於口令的驗證-------用賬號和密碼登入
  2. 基於金鑰的驗證-------需要在本地生成金鑰對,然後把金鑰對中的公鑰上傳至伺服器,並與伺服器中的公鑰進行比較;

超哥之前說過“Linux一切接檔案”,也就是在Linux系統中修改服務程式,都得去修改它對應的配置檔案,sshd程式的配置檔案是/etc/ssh/sshd_config,檢查配置檔案引數

grep -v '^#' /etc/ssh/sshd_config |grep -v '^$'

在RHEL7系統中,已經預設安裝啟動了SSHD服務,

使用密碼登入

ssh 192.168.12.15

基於口令的認證

1.在第一次登入的時候,系統會出現下面的提示資訊:

The authenticity of host 'ssh-server.example.com (12.18.429.21)' can't be established.
RSA key fingerprint is 98:2e:d7:e0:de:9f:ac:67:28:c2:42:2d:37:16:58:4d.
Are you sure you want to continue connecting (yes/no)?

上面的資訊說的是:無法確認主機ssh-server.example.com(12.18.429.21)的真實性,不過知道它的公鑰指紋,是否繼續連線?

輸入yes之後,那麼該host key會被加入到Client的known_hosts中,格式如下

pyyuc.cn,123.206.16.61 ecdsa-sha2-nistp256....

終端提示如下:

Warning: Permanently added 'ssh-server.example.com,12.18.429.21' (RSA) to the list of known hosts. 
Password: (enter password) 

提示該host已經被確認,並追加到檔案known_hosts中,然後就要輸入密碼,之後的流程如圖

私鑰是server端獨有的,即使client的資訊洩露,也沒有私鑰進行解密,保證資料安全。

使用安全祕鑰

加密是對資訊進行編碼和解碼的技術,它通過一定的演算法將原本可以直接閱讀的銘文資訊轉換成密文。金鑰就是密文的鑰匙,有私鑰公鑰之分。

在資料傳輸時,擔心被他人監聽或截獲,就可以在傳輸前先使用公鑰對資料加密處理,然後再傳送。這樣只有掌握私鑰的使用者才能解密這段資料,除此之外的其讓人即使截取了資料,也很難將其破解成明文。

基於公鑰的免密登入

1.在客戶端主機生成“祕鑰對”

ssh-keygen   

2.第二步:吧客戶端主機中生成的公鑰檔案傳送至遠端主機:

3.對伺服器端進行設定,使其只能允許祕鑰登入,拒絕口令登入,然後重啟sshd服務

vim /etc/ssh/sshd_config
PasswordAuthentication no

systemctl restart sshd

4.在客戶端即可免密登入伺服器了

ssh [email protected]123.206.16.61

課後作業

複製程式碼
1)    開啟Linux作業系統,要求以root使用者登入GNOME圖形介面,語言支援選擇為漢語
2)    使用快捷鍵切換到虛擬終端2,使用普通使用者身份登入,檢視系統提示符
3)    使用命令退出虛擬終端2上登入的使用者
4)    使用快捷鍵切換到虛擬終端5,使用管理員身份登入,檢視系統提示符
5)    使用命令退出虛擬終端5上登入的使用者
6)    切回圖形介面,右單擊桌面開啟終端,輸入關閉系統的命令
7)   成功設定伺服器免密登入
複製程式碼

 

 

為什麼要遠端連線Linux

在實際的工作場景中,虛擬機器介面或者物理伺服器本地的終端都是很少接觸的,因為伺服器裝完系統之後,都要拉倒IDC機房託管,如果是購買的雲主機,那更碰不到伺服器本體了,只能通過遠端連線的方式管理自己的Linux系統。

因此在裝好Linux系統之後,使用的第一步應該是配置好客戶端軟體(ssh軟體進行連線)連線Linux系統。

通過什麼軟體呢?

Xshell
SecureCRT

遠端連線必備的知識

ip地址 > 伺服器的位置

網際網路上的計算機都會有一個唯一的32位的ip地址,如同家裡的門牌號,對應到伺服器的位置。

我們找人,可以通過身份證號碼對應某個人

那我們找到某臺伺服器,也必須是通過IP地址

區域網

(針對自己班級/家庭所在環境)裡也有預留的ip地址,一般是192/10/172開頭,區域網的IP地址也是唯一的。

windows檢視ip通過命令:

在cmd終端敲下:
ipconfig
檢視“乙太網介面卡 本地連線 IPv4”的Ip地址就是自身網線的ip地址了

Linux檢視ip方式:

方式1:ip addr
方式2: ifconfig

外網Ip

全世界哪裡都可以訪問,

虛擬機器網路配置

複製程式碼
host only 僅主機 單機模式,瞭解即可
電腦pc   >  皇帝
虛擬機器   >   老百姓

老百姓被皇帝控制,無法與外屆通訊





nat模式(網路地址轉換)
電腦pc  >    皇帝
nat     >    宰相
虛擬機器    >    老百姓

老百姓的房子是宰相分配的 與皇帝無關
虛擬機器的ip是nat分配的,電腦環境無論怎麼變化,都不會影響虛擬機器
好處:
在家,在學校,在公司,使用虛擬機器,ip地址都不會變化

橋接
電腦pc    >    皇帝
虛擬機器   >    老百姓
只要更換了一波皇帝,老百姓房子都得換
只要換了個教室,插上網線,ip就變了
好處:不用配置
壞處:更換ip麻煩
複製程式碼

 

NAT模式

電腦宿主機的ip在區域網內是唯一的,選擇了NAT模式建立虛擬機器,虛擬機器就是一個新的區域網

橋接模式

用此模式,就是區域網中一臺獨立的主機,它可以訪問該類網段任意一臺機器,

僅主機模式

單機模式

埠的概念 

一臺伺服器可以有一個ip地址,例如是192.168.11.1,伺服器是需要對外提供服務的,例如web服務,FTP服務。那麼僅憑ip地址,主機無法區分不同的服務,ip地址和網路服務是一對多的關係,一個ip提供多個服務,因此就有了“埠號”來區分不同的伺服器的。

埠(port)的設計規定是有65536這麼多埠,每個埠對應唯一的程式,0-1024埠之間被作業系統佔用,因此開發人員能使用的是1024-65536區間的埠。

ftp:23
dns:53
http:80
https:443
ssh:22

協議的概念

protocol是為網路中的資料交換而建立的規則、標準或者約定,兩個實體要通訊,必須有同一種語言。

常見協議有超文字傳輸協議(HTTP)、檔案傳輸協議(FTP),簡單郵件傳輸協議(SMTP)、網路通訊協議(TCP)、使用者資料報協議(UDP)

總結

ip  ip地址      找人,找伺服器  
port 埠號 提供什麼服務
protocol 協議 說什麼語言

第一次連線Linux

1.下載Xshell
2.命令:ssh ip  (預設22埠)

那麼問題來了。。。。

這個黑乎乎的是個什麼玩意?

Linux終端也稱為虛擬控制檯,Linux終端採用字元命令方式工作,使用者通過鍵盤輸入命令,通過Linux終端對系統進行控制
Linux是一個多使用者、多工、支援多執行緒和多CPU的作業系統

Linux切換虛擬終端

ctrl+Alt+F[1~6],如想切換到第二號虛擬終端,則同時按Ctrl+Alt+F2
掌握普通使用者登入後系統的提示符:$
掌握root使用者登入後系統的提示符:#

檢視終端資訊shell命令 

那麼如何檢視當前Linux的終端有哪些呢?

複製程式碼
命令,解釋
tty    檢視當前終端
who am i 僅顯示當前使用者正在使用的終端和登入時間
w       檢視所有終端(功能最全,顯示使用者名稱,終端標記,登入時間,負載等資訊)

 

複製程式碼

配置nat網路

https://www.cnblogs.com/pyyu/p/9689138.html

 

配置SSHD服務

  SSH(Secure Shell)是一種能夠以安全的方式提供遠端登入的協議,也是目前遠端管理 Linux 系統的首選方式。在此之前,一般使用 FTP 或 Telnet 來進行遠端登入。但是因為它們 以明文的形式在網路中傳輸賬戶密碼和資料資訊,因此很不安全,很容易受到黑客發起的中 間人攻擊,這輕則篡改傳輸的資料資訊,重則直接抓取伺服器的賬戶密碼。

  想要使用 SSH 協議來遠端管理 Linux 系統,則需要部署配置 sshd 服務程式。sshd 是基於 SSH 協議開發的一款遠端管理服務程式,不僅使用起來方便快捷,而且能夠提供兩種安全驗證的方法:

  1. 基於口令的驗證-------用賬號和密碼登入
  2. 基於金鑰的驗證-------需要在本地生成金鑰對,然後把金鑰對中的公鑰上傳至伺服器,並與伺服器中的公鑰進行比較;

超哥之前說過“Linux一切接檔案”,也就是在Linux系統中修改服務程式,都得去修改它對應的配置檔案,sshd程式的配置檔案是/etc/ssh/sshd_config,檢查配置檔案引數

grep -v '^#' /etc/ssh/sshd_config |grep -v '^$'

在RHEL7系統中,已經預設安裝啟動了SSHD服務,

使用密碼登入

ssh 192.168.12.15

基於口令的認證

1.在第一次登入的時候,系統會出現下面的提示資訊:

The authenticity of host 'ssh-server.example.com (12.18.429.21)' can't be established.
RSA key fingerprint is 98:2e:d7:e0:de:9f:ac:67:28:c2:42:2d:37:16:58:4d.
Are you sure you want to continue connecting (yes/no)?

上面的資訊說的是:無法確認主機ssh-server.example.com(12.18.429.21)的真實性,不過知道它的公鑰指紋,是否繼續連線?

輸入yes之後,那麼該host key會被加入到Client的known_hosts中,格式如下

pyyuc.cn,123.206.16.61 ecdsa-sha2-nistp256....

終端提示如下:

Warning: Permanently added 'ssh-server.example.com,12.18.429.21' (RSA) to the list of known hosts. 
Password: (enter password) 

提示該host已經被確認,並追加到檔案known_hosts中,然後就要輸入密碼,之後的流程如圖

私鑰是server端獨有的,即使client的資訊洩露,也沒有私鑰進行解密,保證資料安全。

使用安全祕鑰

加密是對資訊進行編碼和解碼的技術,它通過一定的演算法將原本可以直接閱讀的銘文資訊轉換成密文。金鑰就是密文的鑰匙,有私鑰公鑰之分。

在資料傳輸時,擔心被他人監聽或截獲,就可以在傳輸前先使用公鑰對資料加密處理,然後再傳送。這樣只有掌握私鑰的使用者才能解密這段資料,除此之外的其讓人即使截取了資料,也很難將其破解成明文。

基於公鑰的免密登入

1.在客戶端主機生成“祕鑰對”

ssh-keygen   

2.第二步:吧客戶端主機中生成的公鑰檔案傳送至遠端主機:

3.對伺服器端進行設定,使其只能允許祕鑰登入,拒絕口令登入,然後重啟sshd服務

vim /etc/ssh/sshd_config
PasswordAuthentication no

systemctl restart sshd

4.在客戶端即可免密登入伺服器了

ssh [email protected]123.206.16.61

課後作業

複製程式碼
1)    開啟Linux作業系統,要求以root使用者登入GNOME圖形介面,語言支援選擇為漢語
2)    使用快捷鍵切換到虛擬終端2,使用普通使用者身份登入,檢視系統提示符
3)    使用命令退出虛擬終端2上登入的使用者
4)    使用快捷鍵切換到虛擬終端5,使用管理員身份登入,檢視系統提示符
5)    使用命令退出虛擬終端5上登入的使用者
6)    切回圖形介面,右單擊桌面開啟終端,輸入關閉系統的命令
7)   成功設定伺服器免密登入
複製程式碼