Linux相關研究 3
因為沒有一般Linux機台可以測試,下面大概講述
當有兩台Linux,一台client端,另一台Server端
通常在Client端可以透過指令登入到Server端:
Client端執行:ssh Server端帳號@ServerIP位置
但是過程將被提示需要輸入密碼才能順利登入到遠端的Server
此時在Client端的/home/使用者/.ssh目錄下
會有known_hosts檔案紀錄Server端
為了方便,不用在使用密碼,而是透過金鑰方式認證登入,可以用以下步驟:
- 先在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位置:路徑
其他相關參考: