Linux相關研究 3

SSH基本使用方法(包含ssh-keygen免打密碼)

ZONGRU Li
Jan 2, 2022

因為沒有一般Linux機台可以測試,下面大概講述

當有兩台Linux,一台client端,另一台Server端

通常在Client端可以透過指令登入到Server端:

Client端執行:ssh Server端帳號@ServerIP位置

但是過程將被提示需要輸入密碼才能順利登入到遠端的Server

此時在Client端的/home/使用者/.ssh目錄下

會有known_hosts檔案紀錄Server端

為了方便,不用在使用密碼,而是透過金鑰方式認證登入,可以用以下步驟:

  1. 先在Client建立key-pair,執行:
ssh-keygen -t rsa -b 2048#後續有連線發生too open問題的話可以:
chmod 400 ~/.ssh/id_rsa
#檢查權限編號:
stat -c "%a %n" ~/.ssh/id_rsa

過程會提示預設在/home/使用者/.ssh/id_rsa內儲存key(直接enter確認)

接著又問是否要自定義passphrase(直接enter略過即可)

接著在輸入一遍passphrase(一樣直接enter)

最後在/home/使用者/.ssh目錄下就會看到兩個檔案:id_rsa與id_rsa.pub

後者即是要提供給Server的公鑰

而遠端Server上/home/使用者/.ssh目錄下

一開始會有一個空的檔案叫authorized_keys

我們就要把Client端建立的id_rsa.pub內容貼近去

把Client端cat id_rsa.pub輸出的內容複製到

Server上的/home/使用者/.ssh/authorized_keys內,類似如下

之後Client端要再ssh方式連到遠端Server就不會再提示要輸入密碼了

因為預設以下指令:

Client端執行:ssh Server端帳號@ServerIP位置#如果還是看到要打密碼,記得Server端補執行以下:
chmod 600 ~/.ssh/authorized_keys

同等於以下指令(帶有Client端私鑰,預設就吃~/.ssh/id_rsa):

Client端執行:ssh -i ~/.ssh/id_rsa Server端帳號@ServerIP位置

同理也運用再scp搬檔指令:

scp 本端檔案 Server端帳號@ServerIP位置:路徑

同等於:

scp -i ~/.ssh/id_rsa 本端檔案 Server端帳號@ServerIP位置:路徑

其他相關參考:

How To Set up SSH Keys on a Linux / Unix System

Automated ssh-keygen without passphrase, how?

--

--

ZONGRU Li
ZONGRU Li

Written by ZONGRU Li

2022/11/17 開源部分個人筆記給LINE "Java程式語言討論區"社群,希望能對社群的技術學習做一點點貢獻.(掩面....記得退訂閱!

No responses yet