前言
我們平常使用ssh user@host
然后輸入密碼的方式來遠程鏈接一個服務器,但是,如果要管理的服務器太多,記住這些服務器的IP和用戶名、密碼就是一個復雜的工作。當然,我們可以把這些信息用文檔記錄下來,然后一個個的復制粘貼。
那么難道就沒有更簡便的方法嗎?答案肯定是有的,讓我們先來看看效果:
bingo@Mac ~$ ssh k8s
Last login: Sun Sep 30 10:12:32 2018 from 10.0.*.*
[root@test173vm1@docker ~]#
如上所示,直接ssh ️k8s
就完成了登陸k8s服務器的操作。下面我們來介紹怎么進行配置。
給服務器配置別名
配置
配置別名(alias)的過程比較簡單,在~/.ssh/config
這個文件(如果目錄下沒有這個文件,可以新建一個)接着按下面格式添加服務器信息:
# 服務器1
Host 別名
HostName IP地址
Port 22
User 用戶名
# 服務器2
Host 別名
HostName IP地址
Port 22
User 用戶名
...
# 更多服務器
測試
信息添加保存后,不用做其他任何操作,就可以直接在終端使用了,比如前文演示的命令:
ssh k8s
但是這一步只是省去了記憶IP的過程,要想登陸服務器還是要輸入密碼的:
我們接着來介紹配置免密登陸的方法。
配置免密登陸
我們都知道Mac的終端沒有保存密碼的功能,但是可以使用Linux通用的方法來配置免密登陸。
假設我們現在有兩台機器:
- 機器A:我們平常使用的主機
- 機器B:我們想要遠程鏈接的機器
生成密匙
首先我們在機器A上面執行下面的命令來生成密匙:
ssh-keygen -t rsa
如果沒有特殊配置,一路回車之后會此命令會在用戶~/.ssh/
目錄下生成兩個文件:id_rsa || id_rsa.pub
前者是私鑰,后者是公鑰。可以這么來理解這兩個文件, id_rsa.pub
是一把鎖,id_rsa
是這把鎖的鑰匙,我們可以把這把鎖給別人用,但是只有掌握鑰匙的我們才能打開這把鎖。關於RSA更多內容大家可以自行搜索。
配置密匙
說到這里,可能很多人已經猜到了,我們接下來要做的就是把id_rsa.pub
里面的內容添加到 機器B 的~/.ssh/
目錄下的authorized_keys
中(如果沒有這個文件我們可以創建一個)。
在機器B添加這個文件就像是在它上面給我們開了一扇用
id_rsa.pub
鎖上的小門,而我們拿着鑰匙id_rsa
可以開鎖。
完成上面這一步之后我們就實現了ssh 別名
來登陸某台服務器了。是不是很簡單?快點試試吧!
上面的這些配置在每一個Linux系統中基本都可以完成。
總結
- RSA
- ssh-keygen
- ~/.ssh
參考資料:
https://www.jianshu.com/p/13545fd41849
https://blog.csdn.net/ljfrocky/article/details/46280455
https://baike.baidu.com/item/RSA算法/263310?fromtitle=RSA&fromid=210678&fr=aladdin