建立 SSH-Key 與快速的登入伺服器

StreetVoice 的伺服器說多不多說少不少並且又有許多不同的 Project,而身為公司內唯一的一位 OPs 必須要管理所有的伺服器為了要跟公司唯一的一位 DevOPs Vinta 大大(已經是前同事了哭)同步所有的伺服器的資訊經過多次的討論之後決定把登入資訊都放在 Project 內,再使用 Linux 的 Alias 來快速的登入所需要的伺服器。

要 SSH 到伺服器上第一部當然是準備你要使用的 SSH-Key 了,很簡單只要一個 command 就可以建立了

$ ssh-keygen -t rsa

會問你幾個問題:

第一祢的 SSH-Key 要放在哪?預設位置是家目錄的 .ssh 資料夾

Enter file in which to save the key (/Users/sean/.ssh/id_rsa):

第二是否要為 SSH-Key 設定密碼為了方便所以就不設定密碼了

Enter passphrase (empty for no passphrase):
Enter same passphrase again:

之後會建立兩個檔案在家目錄內的 .ssh 資料夾內

$ ls -al ~/.ssh/id_rsa*
-rw-------@ 1 sean staff 3243 Aug 7 22:22 .ssh/id_rsa
-rw-r--r--@ 1 sean staff 746 Aug 7 22:22 .ssh/id_rsa.pub

把 id_rsa.pub 放到各伺服器祢要登入的使用者家目錄內的 .ssh 資料夾內並且改名成 authorized_keys 就可以拉,當然了這只是前置動作接下來才是我們為了要可以快速登入伺服器所做的。

首先要在各個 Project 內維護一份伺服器的登入檔案,為了方便記憶所以我們命名為 ssh_alias


alias web1="ssh -i $HOME/.ssh/id_rsa sean@1.1.1.1"
alias web2="ssh -i $HOME/.ssh/id_rsa sean@2.2.2.2"
alias web3="ssh -i $HOME/.ssh/id_rsa sean@3.3.3.3"

然後依照不同作業系統將底下的 command 加到需要加的檔案內

source $PROJECT/ssh_alias # to ~/.bash_profile for macOS
source $PROJECT
/ssh_alias # to ~/.bashrc for ubuntu

之後只要我好好地維護這份檔案大家就都可以快速的登入伺服器了

$ web1

這樣子做就算有修改 ssh_alias 檔案只要重新開啟 Terminal 就會重新執行 ssh_alias 檔案,祢就永遠不會去到不該去的黑洞內了

Like what you read? Give Sean hsu a round of applause.

From a quick cheer to a standing ovation, clap to show how much you enjoyed this story.