爲何要遠程鏈接Linux
在實際的工做場景中,虛擬機界面或者物理服務器本地的終端都是不多接觸的,由於服務器裝完系統以後,都要拉倒IDC機房託管,若是是購買的雲主機,那更碰不到服務器本體了,只能經過遠程鏈接的方式管理本身的Linux系統。html
所以在裝好Linux系統以後,使用的第一步應該是配置好客戶端軟件(ssh軟件進行鏈接)鏈接Linux系統。web
經過什麼軟件呢?算法
Xshell
SecureCRT
遠程鏈接必備的知識
ip地址 > 服務器的位置
互聯網上的計算機都會有一個惟一的32位的ip地址,如同家裏的門牌號,對應到服務器的位置。shell
咱們找人,能夠經過身份證號碼對應某我的
那咱們找到某臺服務器,也必須是經過IP地址
局域網
(針對本身班級/家庭所在環境)裏也有預留的ip地址,通常是192/10/172開頭,局域網的IP地址也是惟一的。vim
windows查看ip經過命令:windows
在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 查看全部終端(功能最全,顯示用戶名,終端標記,登陸時間,負載等信息)
https://www.cnblogs.com/pyyu/p/9689138.html
配置nat網絡
配置SSHD服務
SSH(Secure Shell)是一種可以以安全的方式提供遠程登陸的協議,也是目前遠程管理 Linux 系統的首選方式。在此以前,通常使用 FTP 或 Telnet 來進行遠程登陸。可是由於它們 以明文的形式在網絡中傳輸帳戶密碼和數據信息,所以很不安全,很容易受到黑客發起的中 間人攻擊,這輕則篡改傳輸的數據信息,重則直接抓取服務器的帳戶密碼。
想要使用 SSH 協議來遠程管理 Linux 系統,則須要部署配置 sshd 服務程序。sshd 是基於 SSH 協議開發的一款遠程管理服務程序,不只使用起來方便快捷,並且可以提供兩種安全驗證的方法:
- 基於口令的驗證-------用帳號和密碼登陸
- 基於密鑰的驗證-------須要在本地生成密鑰對,而後把密鑰對中的公鑰上傳至服務器,並與服務器中的公鑰進行比較;
超哥以前說過「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 root@123.206.16.61
課後做業
1) 開啓Linux操做系統,要求以root用戶登陸GNOME圖形界面,語言支持選擇爲漢語 2) 使用快捷鍵切換到虛擬終端2,使用普通用戶身份登陸,查看系統提示符 3) 使用命令退出虛擬終端2上登陸的用戶 4) 使用快捷鍵切換到虛擬終端5,使用管理員身份登陸,查看系統提示符 5) 使用命令退出虛擬終端5上登陸的用戶 6) 切回圖形界面,右單擊桌面打開終端,輸入關閉系統的命令7) 成功設置服務器免密登陸