linux基礎(chǔ)之ssh詳解


  • 先來看幾個問題
    ssh是什么?ssh的作用是啥桐猬?是如何實現(xiàn)的麦撵?如何實現(xiàn)不輸入密碼進行登陸?ssh用戶這邊保存的是公鑰還是私鑰?ssh的端口轉(zhuǎn)發(fā)是什么免胃?

1音五、ssh是什么?
ssh是一種網(wǎng)絡(luò)協(xié)議羔沙,用于計算機之間的加密登陸躺涝。如果一個用戶從本地計算機,使用ssh協(xié)議登陸另一臺遠程計算機扼雏,我們就可以認為坚嗜,這種登陸是安全的,即使中途被截獲诗充,密碼也不會泄露苍蔬。(因為最早的時候計算機都是明文通信的,一旦被截獲蝴蜓,內(nèi)容就暴露無疑碟绑。
*需要注意的是:
ssh會把你每個你訪問過計算機的公鑰(public key)都記錄在~/.ssh/known_hosts。當下次訪問相同計算機時励翼,OpenSSH會核對公鑰蜈敢。如果公鑰不同,OpenSSH會發(fā)出警告汽抚。

2抓狭、兩種方式實現(xiàn)不輸入密碼登陸

一般的方法是基于口令的,需要在認證過程中傳輸公鑰造烁,輸入口令否过。
而基于密鑰的方法,不需要輸入密碼進行登陸

  • 直接在本地(服務(wù)器)把公鑰認證到本地惭蟋,然后把私鑰發(fā)送到遠程苗桂,此時遠程就可以直接登陸服務(wù)器.本地生成認證文件(auth)。
  • 在本地直接使用ssh-copy-id 遠程ip 就是將本地的公鑰匙發(fā)送到遠程告组,就是遠程的認證文件煤伟。此時本地可以直接登陸到遠程。

1木缝、最常用的使用密碼登陸遠程

[root@server1 ~]# cd /root/.ssh/
[root@server1 .ssh]# ls
authorized_keys
[root@server1 .ssh]# rm -rf authorized_keys 
[root@server1 .ssh]# ls
[root@server1 .ssh]# 
[root@server1 .ssh]# /etc/init.d/sshd status
openssh-daemon (pid  963) 正在運行...

[root@ivans ~]# cd /root/.ssh/
[root@ivans .ssh]# ls
known_hosts
[root@ivans .ssh]# rm -rf known_hosts 
[root@ivans .ssh]# ls
[root@ivans .ssh]# 
[root@ivans .ssh]# systemctl status sshd
● sshd.service - OpenSSH server daemon
   Loaded: loaded (/usr/lib/systemd/system/sshd.service; enabled; vendor preset: enabled)
   Active: active (running) since 二 2018-12-18 12:00:01 CST; 3h 28min ago
  Process: 1524 ExecStartPre=/usr/sbin/sshd-keygen (code=exited, status=0/SUCCESS)
 Main PID: 2001 (sshd)
   CGroup: /system.slice/sshd.service
           └─2001 /usr/sbin/sshd -D

12月 18 12:00:00 ivans systemd[1]: Starting OpenSSH server daemon...
12月 18 12:00:01 ivans systemd[1]: Started OpenSSH server daemon.
12月 18 12:00:02 ivans sshd[2001]: Server listening on 0.0.0.0 port 22.
12月 18 12:00:02 ivans sshd[2001]: Server listening on :: port 22.


本來已經(jīng)清空了.ssh這個目錄的的東西便锨,但是從虛擬機連接一次主機完畢后,發(fā)現(xiàn)多了一個knownhosts文件我碟。



此時我們對比真機上的公鑰文件放案,發(fā)現(xiàn)客戶端這邊knownhosts記錄的是服務(wù)器的公鑰。



我們刪除服務(wù)器上的公鑰矫俺,重新生成吱殉,發(fā)現(xiàn)公鑰是不變的振乏。

2鹦牛、配置sshd免密登陸
第一種方法:在客戶端將本地的公鑰發(fā)送到遠程

[root@server1 .ssh]# ssh-copy-id 172.25.4.250

此時發(fā)現(xiàn)客戶端可以直接登陸服務(wù)器近范,但是服務(wù)器端多了一個認證文件澎现,這個文件里記錄的是客戶端的公鑰



第二種方法,在服務(wù)器端將公鑰認證在本地然后將私鑰匙發(fā)送到客戶端押赊。

[root@ivans .ssh]# ssh-keygen 
[root@ivans .ssh]# ssh-copy-id -i /root/.ssh/id_rsa.pub root@172.25.4.250
[root@ivans .ssh]# scp id_rsa 172.25.4.1:/root/.ssh/

這么說吧缎罢!
實現(xiàn)免密登陸的第一種方法,是通過將本地的公鑰直接發(fā)送到遠程考杉,這種方法首先需要通過ssh-keygen命令在/root/.ssh/目錄下生成公鑰和私鑰匙,再通過ssh-copy-id 遠程主機的ip地址舰始,需要輸入一次yes這個時候就已經(jīng)將遠程主機的公鑰添加到knownhosts文件里崇棠,以后登陸不需要輸入yes也不需要輸入密碼了。
實現(xiàn)免密碼登陸的第二種方法丸卷,是通過先在服務(wù)器端將服務(wù)端的公鑰認證到服務(wù)端枕稀,此時服務(wù)端的/root/.ssh/目錄下會生成authorized_keys這個文件,這個文件里面記錄的是服務(wù)端的公鑰匙谜嫉,然后我們需要將服務(wù)端的私鑰發(fā)送到遠程客戶端萎坷。此時客戶端可以免密登陸,但是需要輸入yes確認將服務(wù)器端的公鑰寫入到本地的knownhosts文件中沐兰。


  • ssh服務(wù)安全配置

ssh服務(wù)的配置文件為: /etc/ssh/sshd_config 更改配置文件后一定要重新啟動systemctl restart sshd一定記住
PasswordAuthencation yes|no
是否開啟用戶密碼認證 yes為支持 no為關(guān)閉
PermitRootLogin yes|no
是否允許超級用戶登錄 yes為允許 no為不允許*不允許別的主機登陸你的root帳號
AllowUsers 哆档、DenyUsers用戶白名單和黑名單


ssh的端口轉(zhuǎn)發(fā)

端口轉(zhuǎn)發(fā)簡介:
ssh的基本特性是會自動加密ssh服務(wù)端和客戶端的所有數(shù)據(jù)。那么住闯,我們可以通過ssh為其他的一些tcp連接提供一個安全的通道瓜浸,ssh將其他的一些tcp端口的網(wǎng)絡(luò)數(shù)據(jù)轉(zhuǎn)發(fā)達到安全傳輸?shù)哪康摹H绫仍瑃elent插佛,smtp
等tcp應(yīng)用,從而避免了用戶名密碼等的明文傳輸量窘。還有一種情況雇寇,如果工作環(huán)境中的防火墻限制了一些網(wǎng)絡(luò)端口的使用,但是允許ssh連接蚌铜,也能夠通過將tcp端口轉(zhuǎn)發(fā)锨侯,使用ssh進行通信。


兩大功能:

  • 加密ssh服務(wù)端和客戶端之間的通信數(shù)據(jù)
  • 突破防火墻的間隔完成一些之前無法建立的tcp連接厘线。

實驗一

1识腿、本地轉(zhuǎn)發(fā)



實驗背景:
說明:
22端口為sshd服務(wù)監(jiān)聽的端口
23端口為telnet服務(wù)監(jiān)聽的端口
企業(yè)內(nèi)部c服務(wù)器僅僅允許telnet連接就是23端口訪問,而不允許外部直接訪問造壮,而b服務(wù)器是一個ssh服務(wù)器渡讼,一個用戶需要從企業(yè)外部訪問企業(yè)內(nèi)部的c服務(wù)器骂束。前提是企業(yè)的防火墻允許22端口進來。


命令:ssh -L localport:remotehost:remotehostport sshserver
localport 代表a機器開啟的端口號成箫,用來與b機器進行連接
remotehost 代表最終連接機器的ip地址
remotehostport 代表最終連接機器的端口號
sshserver代表轉(zhuǎn)發(fā)機器也就是機器b的ip地址
-f代表后臺啟用展箱。當你的隧道建立完畢后,隧道進程會默認后臺啟動
-N代表不打開遠程shell蹬昌,處于等待狀態(tài)

實驗環(huán)境:rhel7
server1:172.25.4.1 作為實驗背景中的a機器
server2:172.25.4.2 b機器
server3:172.25.4.3 c機器


首先混驰,我們得在c機器上設(shè)置防火墻策略,還原實驗場景

1皂贩、設(shè)置拒絕a機器連接

[root@server3 ~]# iptables -A INPUT -s 172.25.4.1 -j REJECT
[root@server3 ~]# iptables -nL
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
REJECT     all  --  172.25.4.1           0.0.0.0/0            reject-with icmp-port-unreachable

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination  
[root@server1 ~]# ssh root@172.25.4.3
ssh: connect to host 172.25.4.3 port 22: Connection refused

2栖榨、開啟c機器的23端口,telnet服務(wù)監(jiān)聽的端口


3明刷、開啟端口轉(zhuǎn)發(fā)

查看a機器都使用了哪些端口

[root@server1 ~]# ss -ntl
State      Recv-Q Send-Q           Local Address:Port                          Peer Address:Port              
LISTEN     0      128                          *:22                                       *:*                  
LISTEN     0      100                  127.0.0.1:25                                       *:*                  
LISTEN     0      128                         :::22                                      :::*                  
LISTEN     0      100                        ::1:25                                      :::*    

設(shè)置端口轉(zhuǎn)發(fā)策略婴栽,由于發(fā)現(xiàn)9527端口沒有被使用,然后我們就建立本地轉(zhuǎn)發(fā)的隧道
[root@server1 ~]# ssh -L 9527:172.25.4.3:23 -fN 172.25.4.2
[root@server1 ~]# ss -nt
State Recv-Q Send-Q Local Address:Port Peer Address:Port
ESTAB 0 0 172.25.4.1:35828 172.25.4.2:22
ESTAB 0 0 172.25.4.1:22 172.25.4.250:55842


使用ss -nt查看端口連接情況
我們發(fā)現(xiàn)9527端口和server2的22端口已經(jīng)建立連接成功辈末,然后使用telnet訪問本地的9527端口愚争,然后會通過ssh到server2再從server2到server3的23端口。這個結(jié)果代表已經(jīng)建立連接挤聘,由于telnet默認超戶無法登陸轰枝,所以我們得新建用戶再測試。
2018-12-20 14:39:52的屏幕截圖.png

2018-12-20 14:40:04的屏幕截圖.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末组去,一起剝皮案震驚了整個濱河市鞍陨,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌从隆,老刑警劉巖湾戳,帶你破解...
    沈念sama閱讀 221,695評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異广料,居然都是意外死亡砾脑,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,569評論 3 399
  • 文/潘曉璐 我一進店門艾杏,熙熙樓的掌柜王于貴愁眉苦臉地迎上來韧衣,“玉大人,你說我怎么就攤上這事购桑〕┟” “怎么了?”我有些...
    開封第一講書人閱讀 168,130評論 0 360
  • 文/不壞的土叔 我叫張陵勃蜘,是天一觀的道長硕噩。 經(jīng)常有香客問我,道長缭贡,這世上最難降的妖魔是什么炉擅? 我笑而不...
    開封第一講書人閱讀 59,648評論 1 297
  • 正文 為了忘掉前任辉懒,我火速辦了婚禮,結(jié)果婚禮上谍失,老公的妹妹穿的比我還像新娘眶俩。我一直安慰自己,他們只是感情好快鱼,可當我...
    茶點故事閱讀 68,655評論 6 397
  • 文/花漫 我一把揭開白布颠印。 她就那樣靜靜地躺著,像睡著了一般抹竹。 火紅的嫁衣襯著肌膚如雪线罕。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,268評論 1 309
  • 那天窃判,我揣著相機與錄音闻坚,去河邊找鬼。 笑死兢孝,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的仅偎。 我是一名探鬼主播跨蟹,決...
    沈念sama閱讀 40,835評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼橘沥!你這毒婦竟也來了窗轩?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,740評論 0 276
  • 序言:老撾萬榮一對情侶失蹤座咆,失蹤者是張志新(化名)和其女友劉穎痢艺,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體介陶,經(jīng)...
    沈念sama閱讀 46,286評論 1 318
  • 正文 獨居荒郊野嶺守林人離奇死亡堤舒,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,375評論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了哺呜。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片舌缤。...
    茶點故事閱讀 40,505評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖某残,靈堂內(nèi)的尸體忽然破棺而出国撵,到底是詐尸還是另有隱情,我是刑警寧澤玻墅,帶...
    沈念sama閱讀 36,185評論 5 350
  • 正文 年R本政府宣布介牙,位于F島的核電站,受9級特大地震影響澳厢,放射性物質(zhì)發(fā)生泄漏环础。R本人自食惡果不足惜囚似,卻給世界環(huán)境...
    茶點故事閱讀 41,873評論 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望喳整。 院中可真熱鬧谆构,春花似錦、人聲如沸框都。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,357評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽魏保。三九已至熬尺,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間谓罗,已是汗流浹背粱哼。 一陣腳步聲響...
    開封第一講書人閱讀 33,466評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留檩咱,地道東北人揭措。 一個月前我還...
    沈念sama閱讀 48,921評論 3 376
  • 正文 我出身青樓,卻偏偏與公主長得像刻蚯,于是被迫代替她去往敵國和親绊含。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,515評論 2 359

推薦閱讀更多精彩內(nèi)容

  • 加密算法 對稱加密算法 加密和解密使用同一個密鑰 DES炊汹、3DES躬充、AES、Blowfish讨便、Twofish充甚、ID...
    毛利卷卷發(fā)閱讀 1,602評論 0 4
  • SSH全稱Secure SHell,顧名思義就是非常安全的shell的意思霸褒,SSH協(xié)議是IETF(Internet...
    StarShift閱讀 2,530評論 0 7
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理伴找,服務(wù)發(fā)現(xiàn),斷路器废菱,智...
    卡卡羅2017閱讀 134,701評論 18 139
  • Linux習(xí)慣問題: 在vim編輯時疆瑰,按了ctrl + s后,再按ctrl + q就可以繼續(xù)執(zhí)行了昙啄。ctrl + ...
    光著腳的鞋閱讀 4,517評論 0 16
  • 客戶端技術(shù) 發(fā)送HTTP請求并接收服務(wù)器響應(yīng)瀏覽器的渲染引擎--內(nèi)核的渲染引擎 Web服務(wù)器 作用:監(jiān)聽客戶端請求...
    b099e4f1c471閱讀 242評論 0 0