以前寫過類似的一篇:連入Raspberry Pi:SSH控制端設定—含PuTTY自動登入(公私鑰版),只是那篇是用Windows電腦用Putty登入Linux伺服端(樹梅派);本文要用Linux 登入Linux,這兩台Linux電腦都是樹梅派,而Linux 登入Linux比Windows登入Linux 還簡單。
我們要利用「非對稱金鑰加密」取代帳號和密碼的身分驗證,它是一種密碼學演算法,需要兩個金鑰「公鑰」和「私鑰」,公鑰用作加密,私鑰則用作解密;使用公鑰把明文加密後所得的密文,只能用相對應的私鑰才能解密並得到原本的明文。
公鑰(Public Key):公鑰檔案放在伺服器中,我是把伺服器想像【房子】,公鑰就是一個門鎖,所有人都可以看到門鎖,方便你記住Public這個詞,但需要有鑰匙才能打開門鎖。
私鑰(Private Key):私鑰檔案放在客戶端電腦,我把私鑰想成【鑰匙】,持有該鑰匙才可以進入該伺服器,私鑰能拷貝用在不同客戶端,但要小心保管絕不外流。
Step1. 在操作端電腦上建立私鑰
使用下面指令,先建立一個.ssh目錄再切換到.ssh,然後生成金鑰對。
mkdir #建立目錄【.ssh】 cd ~/.ssh #切換目錄【.ssh】 ssh-keygen #產生公鑰和私鑰對
▼圖 在.ssh目錄底下產生公私鑰對

Step 2. 複製公鑰至伺服器
此時操作端電腦的.ssh目錄裡會有2個檔案,分別為私鑰id_rsa和公鑰id_rsa.pub,複製公鑰至伺服器(此為範例 IP:192.168.100.5,使用者:evens ),伺服器還要要求輸入密碼。
scp id_rsa.pub evens@192.168.100.5:.ssh/authorized_keys #複製公鑰至是伺服器並改名成authorized_keys
▼圖 複製公鑰至伺服器

Step 3. 登入伺服器
首次在 操作端電腦RPi-Zero-1 登入 伺服器RPi2-Srv
ssh evens@192.168.100.5 #登入伺服器
結果很滿意,不會再問密碼了!
▼圖 現在登入伺服器不會再問密碼了

接下來就可以在 操作端電腦RPi-Zero-1 對 伺服器RPi2-Srv 進行SSH操作。
想離開 伺服器RPi2-Srv 就輸入 exit,就會回到操作端電腦RPi-Zero-1 囉~
這篇也是準備知識,之前有寫Raspberry Pi 使用 4G LTE 行動寬頻上網,樹梅派用行動寬頻上網不能取得Public IP,又必須解決遠端操作的問題,那就需要這台 裝4G的樹梅派 採用SSH Tunnel連線並登入 中繼伺服器,然後在轉個Port送資料,只是操作端不會以人工去操作,而是寫腳本自動登入喔!
後記
本次操作並沒有碰到權限問題,連線完全正常,建立目錄及複製公鑰檔案去伺服器端,權限分別是700和600沒必要改,如果你玩其他的Linux系統照上面操作無法連線,可能是權限不足,記得用【ls -all】命令檢查,再執行下面命令提高權限。
sudo chmod 700 .ssh #設定目錄權限 sudo chmod 600 .ssh/authorized_keys #設定公鑰檔案權限

