2023年11月6日 星期一

ssh使用 公鑰私鑰配對(Windows) 登入不再需要帳號密碼

 首先進cmd 

輸入 ssh-keygen

--------------------------

這時候會詢問 要存取的路徑
預設是 C:\Users\使用者名稱\.ssh

然後詢問 是否設定密碼 空白就是不用

--------------------------

Enter passphrase (empty for no passphrase):
 Enter same passphrase again:
--------------------------
如果有設定passphrase,則每次用此key登入都需要輸入這個密碼 (安全性較高,可依個人需求設定)

完成後KEY產生到指定位置

會有兩個Key  有副檔名.pub 就是公鑰, 沒有附檔名的就是私鑰

私鑰最重要不能被竊取

成功就會出現
Your identification has been saved in /home/username/.ssh/id_rsa_ubuntu.
Your public key has been saved in /home/username/.ssh/id_rsa_ubuntu.pub.
The key fingerprint is:
SHA256:nNnQckFbuegUs4WD3y+7YqwCaDhfUlX2J17jxF7X3FU xenby@demo.com
The key's randomart image is:
+---[RSA 2048]----+
|       .o++ ..  E|
|      .  *o+.  ..|
|     .  = *+ o ..|
|    .  . Ooo+ * +|
| . o    Soo..B o.|
|o + o     . ..o  |
| + o .   .  . .  |
|  .   .   +  o   |
|       ..o .o.   |
+----[SHA256]-----+

--------------------------
到這邊為止 本地端已經完成設置

再來須鑰公鑰傳送到Server

Windows 輸入
scp 公鑰路徑 username@IP地址:~/.ssh/

#這個命令會把本地的id_rsa.pub文件複製到Server的 ~/.ssh/
#scp 表示使用DCP協議進行文件傳輸
scp 要傳輸的本地文件路徑 遠程伺服器上的用戶名@服務器的IP地址:~/.ssh/
#在Linux中~表示當前用戶的主目錄
#也就是~/.ssh/ 表示用戶主目錄下的一個名為.ssh的子目錄, 在SSH密鑰管理中,通常會將公鑰和私鑰文件存在在這個目錄下
#~表示當前用戶的主目錄(用戶登錄入後所在的目錄)
#~/.ssh:表示用戶主目錄下的一個名為.ssh的隱藏文件,在Linux中, '.'開頭的文件通常被視為隱藏文件

公鑰成功上傳到伺服器時會有下面的畫面

C:\Users\K>scp C:\Users\K\.ssh\id_rsa.pub k@192.168.33.137:~/.ssh/ username@IP地址's password: id_rsa.pub 100% 572 142.8KB/s 00:00


--------------------------
再來登入伺服器

我們需要把公鑰的內容複製到 ~/.ssh/authorized_keys

cat ~/.ssh/id_rsa.pub >> ~/.ssh\authorized_keys

#cat 用來顯示文件內容的命令
#~/.ssh/id_rsa.pub  這是遠端伺服器上的公鑰文件路徑
#>> 重定向符號(將命令輸出追加到指定文件的末尾)
#~/.ssh\authorized_keys :這個路徑是存了被允連接到該帳戶的公鑰列表文件
# 所以上面的指令就是指定了要將公要添加 ~/.ssh/authorized_keys  從而允許使用該公鑰進行SSH密鑰認證, 透過私鑰連接到目標主機 無須輸入密碼


















標籤:

0 個意見:

張貼留言

訂閱 張貼留言 [Atom]

<< 首頁