# SSH key設定 免密碼連線伺服器 ## 1. 變更hostname 1. 連線至server 2. 利用sudo指令變更hostname ``` sudo hostname HW04 ``` 4. 使用exit指令離開server 5. 再重新連線 即可看到變更後的hostname ## 2. 下載PuTTY及PuTTYgen 連到[https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html](https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html) 分別下載PuTTY(putty.exe)及PuTTYgen(puttygen.exe)   ## 3. 產生SSH Key(私鑰、公鑰) 1. 開啟終端機(不須連線到伺服器) 2. 輸入指令產生金鑰 ``` ssh-keygen ``` 此時會詢問3個問題: * Enter file in which to save the key * Enter passphrase * Enter same passphrase again 都直接按下Enter後即可生成金鑰  3. 開啟檔案總管,到使用者的.ssh資料夾中確認已生成Public key(id_rsa.pub)及Private key(id_rsa)  ## 4. 將SSH Key(公鑰)傳送到要連線的Server端 1. 開啟第二個終端,連線到伺服器(自己的帳號),再輸入以下語法 ``` mkdir .ssh ``` 若帳號下沒有.ssh資料夾,則會成功建立一個.ssh資料夾;反之,若已存在.ssh資料夾,則會建立失敗  2. 回到未連線到伺服器的終端,輸入以下語法以便將剛才產生的Public key傳送到伺服器中: ``` scp 本地端Public_key路徑 帳號@IP位址:/帳號路徑/.ssh/傳過去後的名稱.pub ``` 若指令輸入無誤,將需輸入伺服器密碼,並會看到檔案的傳輸狀態  3. 可至連線到伺服器的終端確認傳輸成功與否,若能在.ssh資料夾中找到方才傳輸過來的.pub檔案,即為傳輸成功 ``` cd .ssh //進入.ssh資料夾 ls //列出資料夾中所有檔案 ```  ## 5. 授權SSH Key(公鑰) 1. 在連線到伺服器的終端輸入以下指令,以便對剛才傳輸過來的.pub檔案進行授權: ``` cat ~/.ssh/傳輸過來後的名稱.pub >> ~/.ssh/authorized_keys ``` 2. 此時列出.ssh資料夾中所有檔案可發現多了一個檔案名為"authorized_keys",可輸入以下指令查看哪些金鑰授權成功: ``` cat ~/.ssh/authorized_keys ```  3. 最後,輸入以下指令,變更檔案權限: ``` chmod 700 ~/.ssh/ //指定只有擁有者可讀寫可執行該目錄 chmod 600 ~/.ssh/* //指定只有擁有者具備讀取和寫入.ssh資料夾下所有檔案的權限 ```  ## 6. 私鑰轉檔 1. 開啟PuTTYgen,Load前面所產生的私鑰(id_rsa) :::info :bulb: **注意**:需先將顯示的檔案類型改為"All Files(\*.*)"才找得到私鑰 :::  2. 選擇"Save private key",並為轉檔後的私鑰取名 :::info :bulb: **注意**:記得取完名後要在後方加上附檔名.ppk :::  ## 7. 設定PuTTY 連線 1. 開啟PuTTY,左方選擇 Connection>>SSH>>Auth>>Credentials,點擊"Browse..." 2. 選擇方才轉檔後的私鑰(.ppk)  3. 左方選擇Session回到起始畫面,下方Saved Sessions處輸入 **hostname@IP位址** 並儲存,未來雙擊可免重新設定前2步驟,輸入Host Name即可免密碼登入Server  ## 8. 成功免密碼登入  ## 參考資料 1. [如何更改Linux作業系統的主機名稱(hostname)?](https://magiclen.org/linux-change-hostname/) 2. [SSH Key 教學,讓你免密碼登入主機伺服器!](https://raise-up.com.tw/web-design-news/ssh-key-tutorial.html/) 3. [How To Use SSH on Windows PuTTY - Generate Public/Private Key Pair & File](https://www.bluehost.com/help/article/using-ssh-on-windows-putty) ###### tags: `Linux系統管理` `SSH key` `免密連線`
×
Sign in
Email
Password
Forgot password
or
Sign in via Google
Sign in via Facebook
Sign in via X(Twitter)
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
Continue with a different method
New to HackMD?
Sign up
By signing in, you agree to our
terms of service
.