-
遠(yuǎn)程管理服務(wù)概念介紹
-
遠(yuǎn)程管理連接原理
-
遠(yuǎn)程管理登錄主機(jī)方式
-
基于密碼登錄方式
-
基于秘鑰登錄方式
-
-
遠(yuǎn)程管理服務(wù)配置文件
1.遠(yuǎn)程管理服務(wù)介紹
SSH:Secure Shell(SSH) 是由 IETF(The Internet Engineering Task Force) 制定的建立在應(yīng)用層基礎(chǔ)上的安全網(wǎng)絡(luò)協(xié)議。服務(wù)端口默認(rèn) 22 ,對(duì)遠(yuǎn)程傳輸數(shù)據(jù)進(jìn)行加密 ,默認(rèn)支持root用戶遠(yuǎn)程連接抱完。
telnet:telnet命令通常用來遠(yuǎn)程登錄。telnet程序是基于TELNET協(xié)議的遠(yuǎn)程登錄客戶端程序胸竞。Telnet協(xié)議是TCP/IP協(xié)議族中的一員明场,是Internet遠(yuǎn)程登陸服務(wù)的標(biāo)準(zhǔn)協(xié)議和主要方式灰羽。它為用戶提供了在本地計(jì)算機(jī)上完成遠(yuǎn)程主機(jī)工作的 能力躏精。在終端使用者的電腦上使用telnet程序渣刷,用它連接到服務(wù)器。終端使用者可以在telnet程序中輸入命令矗烛,這些命令會(huì)在服務(wù)器上運(yùn)行辅柴,就像直接在服務(wù)器的控制臺(tái)上輸入一樣。可以在本地就能控制服務(wù)器碌嘀。要開始一個(gè) telnet會(huì)話碾篡,必須輸入用戶名和密碼來登錄服務(wù)器。Telnet是常用的遠(yuǎn)程控制Web服務(wù)器的方法筏餐。
但是,telnet因?yàn)椴捎妹魑膫魉蛨?bào)文牡拇,安全性不好魁瞪,很多Linux服務(wù)器都不開放telnet服務(wù),而改用更安全的ssh方式了惠呼。但仍然有很多別的系統(tǒng)可能采用了telnet方式來提供遠(yuǎn)程登錄导俘,因此弄清楚telnet客戶端的使用方式仍是很有必要的。
telnet命令還可做別的用途剔蹋,比如確定遠(yuǎn)程服務(wù)的狀態(tài)旅薄,比如確定遠(yuǎn)程服務(wù)器的某個(gè)端口是否能訪問。
2.遠(yuǎn)程服務(wù)通訊原理
- 客戶端 ---> 服務(wù)端 建立三次握手
- 客戶端 ---> 服務(wù)端 SSH遠(yuǎn)程連接請(qǐng)求
- 服務(wù)端 ---> 客戶端 SSH遠(yuǎn)程連接確認(rèn)信息 確認(rèn)是否建立連接/確認(rèn)是否接受公鑰信息
- 客戶端 ---> 服務(wù)端 發(fā)送確認(rèn)連接信息
- 服務(wù)端 ---> 客戶端 發(fā)送公鑰信息 /etc/ssh/公鑰信息
- 客戶端 ---> 服務(wù)端 接受公鑰保存 進(jìn)行確認(rèn) ~/.ssh/know_hosts
- 服務(wù)端 ---> 客戶端 詢問連接密碼信息
- 客戶端 ---> 服務(wù)端 登錄密碼信息
- 服務(wù)端 ---> 客戶端 最終確認(rèn)
PS: 基于密碼建立遠(yuǎn)程通訊過程
遠(yuǎn)程服務(wù)基于密碼通訊原理.png
3.遠(yuǎn)程服務(wù)建立方式
a.基于密碼登錄方式
b.基于秘鑰登錄方式(公鑰泣崩,私鑰)
秘鑰作用:1.利用秘鑰對(duì)數(shù)據(jù)信息進(jìn)行加密處理
??????????2.利用秘鑰信息進(jìn)行用戶身份認(rèn)證
基于秘鑰登錄原理過程:
- 管理端 ---> 被管理端 管理端創(chuàng)建秘鑰對(duì),將公鑰進(jìn)行發(fā)送
- 管理端 ---> 被管理端 發(fā)送遠(yuǎn)程連接請(qǐng)求
- 被管理端 ---> 管理端 進(jìn)行公鑰質(zhì)詢
- 管理端 ---> 被管理端 響應(yīng)公鑰質(zhì)詢信息
-
被管理端 ---> 管理端 公鑰質(zhì)詢結(jié)果確認(rèn)
基于秘鑰連接原理.png
4.基于秘鑰連接配置過程
第一個(gè)里程:創(chuàng)建秘鑰對(duì)信息(管理端服務(wù)器(10.0.0.61))
[root@m01 ~]# ssh-keygen -t dsa
Generating public/private dsa key pair.
Enter file in which to save the key (/root/.ssh/id_dsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_dsa.
Your public key has been saved in /root/.ssh/id_dsa.pub.
The key fingerprint is:
SHA256:SKILYzPt2d158FOzekqHjHaW8ITok1eboeXi1kn3lBE root@web01
The key's randomart image is:
+---[DSA 1024]----+
| |
| E |
| . . .|
| .. o .. . . |
|o+.. ..S+ = o o|
|.o+.o o o #.B.oo |
| .o . = Oo/ooo |
| =.*o+. . |
| .. oo |
+----[SHA256]-----+
[root@m01 ~]# ll ~/.ssh/
total 12
-rw------- 1 root root 668 Aug 20 11:16 id_dsa
-rw-r--r-- 1 root root 600 Aug 20 11:16 id_dsa.pub
-rw-r--r-- 1 root root 171 Aug 20 10:42 known_hosts
第二個(gè)里程: 將公鑰進(jìn)行發(fā)送 管理端服務(wù)器(10.0.0.61)
ssh-copy-id -i /root/.ssh/id_dsa.pub 172.16.1.31
第三個(gè)里程: 進(jìn)行基于秘鑰登錄連接測(cè)試
ssh 172.16.1.31
ssh 172.16.1.31 hostname
需求: 管理端(10.0.0.61) --- 多臺(tái)被管理端需要管理 100臺(tái)
如何批量分發(fā)公鑰 --- shell腳本
免交互批量分發(fā)公鑰腳本
[root@m01 ~]# cat /server/scripts/distribute_key.sh
#!/bin/bash
. /etc/init.d/functions
# 創(chuàng)建秘鑰對(duì)
if [ ! -f /root/.ssh/id_dsa ]
then
ssh-keygen -t dsa -f /root/.ssh/id_dsa -P "" >/dev/null
action "key pair create" /bin/true
else
action "key pair already exists" /bin/false
fi
# 分發(fā)公鑰信息
for ip in 7 31 41
do
sshpass -p654321 ssh-copy-id -i ~/.ssh/id_dsa.pub 172.16.1.$ip -o StrictHostKeyChecking=no &>/dev/null
if [ $? -eq 0 ]
then
action "host 172.16.1.$ip pub_key distribute" /bin/true
echo ""
else
action "host 172.16.1.$ip pub_key distribute" /bin/false
echo ""
fi
done
----------------------------------------------------------------------------
免交互批量檢查公鑰腳本
[root@m01 ~]# cat /server/scripts/check_key.sh
#!/bin/bash
. /etc/init.d/functions
# 檢查公鑰信息
for ip in 7 31 41
do
ssh 172.16.1.$ip hostname &>/dev/null
if [ $? -eq 0 ]
then
action "host 172.16.1.$ip connect" /bin/true
echo ""
else
action "host 172.16.1.$ip connect" /bin/false
echo ""
fi
done
------------------------------------------------------------------
問題: 如何免交互分發(fā)密碼
01. 不要輸入yes確認(rèn)信息
ssh 172.16.1.31 -o StrictHostKeyChecking=no
ssh-copy-id -i ~/.ssh/id_dsa.pub 172.16.1.31 -o StrictHostKeyChecking=no
理解分發(fā)公鑰原理過程 ssh-copy-id
1) 利用ssh和遠(yuǎn)程主機(jī)建立連接
2) 將本地公鑰文件信息傳輸?shù)竭h(yuǎn)程主機(jī)上
3) 遠(yuǎn)程主機(jī)收到公鑰信息 會(huì)保存到~/.ssh/authorized_keys 并且授權(quán)為600
02. 不要輸入密碼信息
yum install -y sshpass
sshpass - noninteractive ssh password provider (提供一個(gè)ssh密碼信息, 進(jìn)行非交互ssh連接)
sshpass -p123456 ssh-copy-id -i ~/.ssh/id_dsa.pub 172.16.1.31 -o StrictHostKeyChecking=no