2023年9月17日 星期日

SSH Key 金鑰與私鑰,創建與使用方法

SSH(Secure Shell)是一種網絡協議,用於安全地遠程連接到計算機並執行命令。 SSH的一個主要優點是它可以使用密鑰對進行身份驗證,而不僅僅是用戶名和密碼。


★建立SSH key連線
#建立ssh金鑰與私鑰
ssh-keygen -t rsa #建立ssh憑證
  1. 產生key詢問要放置的位置 > Enter (預設)
  2. 詢問是否要設定passphrase > Enter (預設)
  3. Enter
  4. 建立key,會產生出兩個文件
  5. id_rsa   #私鑰 保管好,給client連線用的
  6. id_rsa.pub   #公鑰,設定放在伺服器上


1.將建立的公鑰(id_rsa.pub),命名為ssh連線用的憑證「authorized_keys」
#方法一,直接複製
cp ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys  
#方法二,透過ssh工具傳送公鑰到本地,(會要輸入密碼)
ssh-copy-id -i ~/.ssh/id_rsa.pub 127.0.0.1  


2.將私鑰複製出來做連線使用(id_rsa),下方會教各種平台與軟體使用私鑰連線
#方法一,直接將私鑰文字copy出來
cat ~/.ssh/id_rsa
#方法二,適用於MacOS系統,開啟終端機操作
scp root@206.119.111.5:/root/.ssh/id_rsa /Users/alex/Desktop   #從遠端獲取文件到本地電腦
#方法三,適用於windows,開啟WinSCP操作




2.將私鑰copy出來,要做連線用 將私鑰存放到~/.ssh/路徑

ssh root@206.119.111.14 -p 20306 #連線到伺服器


3.設定只能金鑰登入
vi /etc/ssh/sshd_configPermitEmptyPasswords no #允許空密碼
PasswordAuthentication no #密碼驗證
PubkeyAuthentication yes #公鑰驗證



#將本地產生的ssh key傳送到伺服器上,即可金鑰連線
ssh-copy-id root@192.168.50.106 #將公鑰部署到目標服務器


#指定路徑將本地產生的ssh key傳送到伺服器上,即可金鑰連線
ssh-copy-id -i /root/.ssh/id_rsa root@206.119.111.14 -p 20306 



#建立ssh憑證,快速方法
ssh-keygen -t rsa #建立ssh憑證
ssh-copy-id -i ~/.ssh/id_rsa.pub 192.168.0.5
scp /etc/hosts ceph01:/etc/hosts #同步文件給每一台
sed -ri '/^PasswordAuthentication/cPasswordAuthentication yes' /etc/ssh/sshd_config #


#檢查ssh
ss -ptu |grep sshd #檢查當前被ssh連線端口,與來訪的IP與端口




★終端機&命令提示字元



Linux
將私鑰放入/root/.ssh/ 這裡面,連線到其他服務器時會自動使用key驗證登入
ssh -p 20306 root@<IP>



MacOS
ssh -p 20306 root@<IP>




Windows
ssh -p 20306 root@<IP>





★Google Chrome 安全殼層


#使用ssh key私鑰連線方法
身分識別>將id_rsa私鑰匯入




#Key登入失敗 , 清除暫存檔







★WinSCP+Putty(windows 專用套件)


#製作將現有的ssh key (id_rsa),製作成putty private key
1.開啟WinSCP>新增工作階段>進階




2.SSH>身分核對>工具>以PuTTYgen產生新的金鑰對



3.Load > 選擇 id_rsa (要選擇All Files (*.*)才看的到)



4.Save private key






#★金鑰小知識
>WinSCP版本必須一樣,主要原因為↓
>putty(目前使用0.77)
>WinSCP(目前使用5.21.1),產生金鑰的puttygen存在winscp裡面
>版本相同,同一組ppk即可登入root
>公鑰 放在伺服器主機
>私鑰 放在使用者主機



★製作putty key 使用ssh key連線方式
#設定SSH連線,可以自己連到自己 (產生一組key放在自己的ssh,就不用每次打帳密進入);
#ssh-keygen -b 2048 -N '' -f ~/.ssh/id_rsa; //產生一組key
#cat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys; //將產生的key 生成一份 authorized_keys 做驗證
#使用putty >進階 >身分核對>工具>以puttygrn 產生新的金鑰 >




#將這組金鑰存到 /root/.ssh/authorized_keys (金鑰要保管好)
#登入使用者名稱可以改用 root
echo "金鑰" > /root/.ssh/authorized_keys ; # 使用金鑰核對的資料 ;





沒有留言:

張貼留言