第二十五節(jié)、SSH遠(yuǎn)程免密登錄

SSH 為建立在應(yīng)用層和傳輸層基礎(chǔ)上的安全協(xié)議睡腿。SSH 是目前較可靠语御,專為遠(yuǎn)程登錄會(huì)話和其他網(wǎng)絡(luò)服務(wù)提供安全性的協(xié)議。利用SSH 協(xié)議可以有效防止遠(yuǎn)程管理過程中的信息泄露問題席怪。
從客戶端來看应闯,SSH提供兩種級(jí)別的安全驗(yàn)證:
1、基于口令的驗(yàn)證
只要知道帳號(hào)和口令挂捻,就可以登錄到遠(yuǎn)程主機(jī)碉纺。所有傳輸?shù)臄?shù)據(jù)都會(huì)被加密,但缺點(diǎn)是:不能保證你正在連接的服務(wù)器就是你想連接的服務(wù)器。連接過程如下


SSH遠(yuǎn)程密碼登錄.png

當(dāng)?shù)谝淮捂溄舆h(yuǎn)程主機(jī)時(shí)骨田,會(huì)提示您當(dāng)前主機(jī)的”公鑰指紋”耿导,詢問您是否繼續(xù),如果選擇繼續(xù)后就可以輸入密碼進(jìn)行登錄了态贤,當(dāng)遠(yuǎn)程的主機(jī)接受以后舱呻,該臺(tái)服務(wù)器的公鑰就會(huì)保存到~/.ssh/known_hosts文件中
2、基于密鑰的驗(yàn)證
這種驗(yàn)證的前提是客戶端需要生成一對(duì)密鑰悠汽,將公鑰放到需訪問的遠(yuǎn)程服務(wù)器箱吕。這種驗(yàn)證比上一種的好處是,不能仿冒真正的服務(wù)器柿冲,因?yàn)橐旅氨仨毮玫娇蛻舳松傻墓€茬高。缺點(diǎn)就是驗(yàn)證等待過程稍長(zhǎng)些。


SSH遠(yuǎn)程免密登錄.png

如何生成密鑰:

  • 在客戶端打開終端假抄,執(zhí)行ssh-keygen怎栽,該命令會(huì)默認(rèn)在~/.ssh/目錄下創(chuàng)建id_rsa、id_rsa.pub兩個(gè)文件宿饱,分別為您的公鑰和私鑰
  • 將公鑰id_rsa.pub文件拷貝到服務(wù)器端的~/.ssh/authorized_keys文件中婚瓜,有三種方法:
  1. 通過scp拷貝,例:scp -P 22 ~/.ssh/id_rsa.pub user@host:~/authorized_keys #可選參數(shù)-P代表指定用端口號(hào)22
  2. 通過ssh-copyid程序,例:ssh-copy-id -i 絕對(duì)路徑/file_name 目標(biāo)主機(jī)IP #此種方式簡(jiǎn)單刑棵,不需追加改文件名,但不能指定端口號(hào)愚铡,默認(rèn)以22端口而且需要輸入密碼
  3. 通過cat方法: 例:cat ~/.ssh/id_rsa.pub | ssh -p 22 user@host ‘cat >> ~/.ssh/authorized_keys’
    原理圖如下:
    SSH遠(yuǎn)程密碼登錄原理.png

    圖解蛉签,server A免登錄到server B:
    1.在A上生成公鑰私鑰。
    2.將公鑰拷貝給server B沥寥,要重命名成authorized_keys(從英文名就知道含義了)
    3.Server A向Server B發(fā)送一個(gè)連接請(qǐng)求碍舍。
    4.Server B得到Server A的信息后,在authorized_key中查找邑雅,如果有相應(yīng)的用戶名和IP片橡,則隨機(jī)生成一個(gè)字符串,并用Server A的公鑰加密淮野,發(fā)送給Server A捧书。
    5.Server A得到Server B發(fā)來的消息后,使用私鑰進(jìn)行解密骤星,然后將解密后的字符串發(fā)送給Server B经瓷。Server B進(jìn)行和生成的對(duì)比,如果一致洞难,則允許免登錄舆吮。
    總之:A要免密碼登錄到B,B首先要擁有A的公鑰,然后B要做一次加密驗(yàn)證色冀。對(duì)于非對(duì)稱加密潭袱,公鑰加密的密文不能公鑰解開,只能私鑰解開锋恬。
實(shí)際操作
#生成密鑰對(duì),t參數(shù)指定加密方式rsa,回車3次
[root@localhost ~]# ssh-keygen -t rsa 
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): 
Created directory '/root/.ssh'.
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
eb:38:2d:a0:9e:3d:93:95:a2:52:ec:eb:0b:60:65:44 root@localhost.localdomain
The key's randomart image is:
+--[ RSA 2048]----+
|  .E             |
|  .              |
|   o             |
|  o              |
|.o     .S        |
|o o o o  .       |
|.o o = ..        |
|..+o+ oo.        |
| +*o.o.o.        |
+-----------------+
#查看密鑰存放的目錄
[root@localhost ~]# ll /root/.ssh/
總用量 8
-rw------- 1 root root 1675 12月 19 15:16 id_rsa         # 私鑰自留
-rw-r--r-- 1 root root  408 12月 19 15:16 id_rsa.pub   #公鑰拷貝給目標(biāo)主機(jī)
#傳送公鑰給目標(biāo)主機(jī)需要輸入密碼
[root@localhost ~]# ssh-copy-id  -i /root/.ssh/id_rsa.pub  192.168.15.150
The authenticity of host '192.168.15.150 (192.168.15.150)' can't be established.
RSA key fingerprint is 76:72:55:b7:3f:e1:8b:6d:8d:d7:50:fb:d5:27:bb:c1.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.15.150' (RSA) to the list of known hosts.
Now try logging into the machine, with "ssh '192.168.15.150'", and check in:

  .ssh/authorized_keys

to make sure we haven't added extra keys that you weren't expecting.
#SSH免密設(shè)置成功,可以直接在本機(jī)獲取遠(yuǎn)程主機(jī)的參數(shù),ssh -l user_name  IP "command"
[root@localhost ~]# ssh -l root 192.168.15.150 "df -h"
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda5        58G  3.7G   52G   7% /
tmpfs           491M     0  491M   0% /dev/shm
/dev/sda1       194M   30M  155M  17% /boot
/dev/sda2        20G  5.7G   14G  31% /data
[root@localhost ~]# ssh -l root 192.168.15.150 "ifconfig"
eth0      Link encap:Ethernet  HWaddr 00:0C:29:BA:80:B0  
          inet addr:192.168.15.150  Bcast:192.168.15.255  Mask:255.255.255.0
          inet6 addr: fe80::20c:29ff:feba:80b0/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:661 errors:0 dropped:0 overruns:0 frame:0
          TX packets:348 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:75506 (73.7 KiB)  TX bytes:54018 (52.7 KiB)

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:12 errors:0 dropped:0 overruns:0 frame:0
          TX packets:12 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:840 (840.0 b)  TX bytes:840 (840.0 b)
服務(wù)主配置

服務(wù)主配置文件一般保存服務(wù)的主要參數(shù)屯换,一般路徑/etc/soft/soft.conf
普通配置文件一般是由主配置文件調(diào)用

[root@localhost ssh]# vim sshd_config
17 #Port 22                      #默認(rèn)端口號(hào)
48 #PermitRootLogin yes  #允許超級(jí)管理員登錄,取消注釋改為no,root用戶無法遠(yuǎn)程登錄 
77 #PermitEmptyPasswords no  #允許空密碼登錄,no不允許
78 PasswordAuthentication yes  #允許通過密碼登錄
#重啟ssh服務(wù)
[root@localhost ssh]# systemctl restart sshd

備注:特殊情況主機(jī)上保存了對(duì)方主機(jī)過期的公鑰文件或者因?yàn)閮?nèi)網(wǎng)IP沖突,不同服務(wù)器使用同一個(gè)IP,導(dǎo)致前后公鑰信息有差異無法發(fā)送公鑰文件到目標(biāo)主機(jī)
一般公鑰信息都保存在文件/root/.ssh/known_hosts中伶氢,可以手動(dòng)進(jìn)文件刪除相關(guān)信息或直接清空文件
但這可能會(huì)影響到其他主機(jī)的公鑰文件
可以使用ssh-keygen來刪除指定IP的公鑰文件

ssh-key-gen -R 172.16.10.22
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末趟径,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子癣防,更是在濱河造成了極大的恐慌蜗巧,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,284評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件蕾盯,死亡現(xiàn)場(chǎng)離奇詭異幕屹,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)级遭,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,115評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門望拖,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人挫鸽,你說我怎么就攤上這事说敏。” “怎么了丢郊?”我有些...
    開封第一講書人閱讀 164,614評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵盔沫,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我枫匾,道長(zhǎng)架诞,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,671評(píng)論 1 293
  • 正文 為了忘掉前任干茉,我火速辦了婚禮谴忧,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘角虫。我一直安慰自己沾谓,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,699評(píng)論 6 392
  • 文/花漫 我一把揭開白布戳鹅。 她就那樣靜靜地躺著搏屑,像睡著了一般。 火紅的嫁衣襯著肌膚如雪粉楚。 梳的紋絲不亂的頭發(fā)上辣恋,一...
    開封第一講書人閱讀 51,562評(píng)論 1 305
  • 那天亮垫,我揣著相機(jī)與錄音,去河邊找鬼伟骨。 笑死饮潦,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的携狭。 我是一名探鬼主播继蜡,決...
    沈念sama閱讀 40,309評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼逛腿!你這毒婦竟也來了稀并?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,223評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤单默,失蹤者是張志新(化名)和其女友劉穎碘举,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體搁廓,經(jīng)...
    沈念sama閱讀 45,668評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡引颈,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,859評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了境蜕。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片蝙场。...
    茶點(diǎn)故事閱讀 39,981評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖粱年,靈堂內(nèi)的尸體忽然破棺而出售滤,到底是詐尸還是另有隱情,我是刑警寧澤台诗,帶...
    沈念sama閱讀 35,705評(píng)論 5 347
  • 正文 年R本政府宣布趴泌,位于F島的核電站,受9級(jí)特大地震影響拉庶,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜秃励,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,310評(píng)論 3 330
  • 文/蒙蒙 一氏仗、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧夺鲜,春花似錦皆尔、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,904評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至食呻,卻和暖如春流炕,著一層夾襖步出監(jiān)牢的瞬間澎现,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,023評(píng)論 1 270
  • 我被黑心中介騙來泰國(guó)打工每辟, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留剑辫,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,146評(píng)論 3 370
  • 正文 我出身青樓渠欺,卻偏偏與公主長(zhǎng)得像妹蔽,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子挠将,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,933評(píng)論 2 355

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

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理胳岂,服務(wù)發(fā)現(xiàn),斷路器舔稀,智...
    卡卡羅2017閱讀 134,657評(píng)論 18 139
  • SSH全稱Secure SHell乳丰,顧名思義就是非常安全的shell的意思,SSH協(xié)議是IETF(Internet...
    StarShift閱讀 2,528評(píng)論 0 7
  • SSH 為 Secure Shell 的縮寫镶蹋,由 IETF 的網(wǎng)絡(luò)小組(Network Working Group...
    shuff1e閱讀 1,770評(píng)論 1 11
  • 1成艘、遠(yuǎn)程連接服務(wù)器 遠(yuǎn)程連接服務(wù)器對(duì)于管理員來說,是一個(gè)很有用的操作贺归。它使得對(duì)服務(wù)器的管理更為方便淆两。不過方便歸方便...
    Zhang21閱讀 39,501評(píng)論 0 20
  • [TOC] ssh免密碼登陸及其原理 1 示例 ssh 無密碼登錄要使用公鑰與私鑰。linux下可以用用ssh-k...
    小小少年Boy閱讀 9,831評(píng)論 0 2