Linux 無密碼登入 SSH key登入教學

瓦特歐最近在研究如何,自動備份Linux資料到windows且目標是,
跑一個腳本(bat檔),就能自動完成備份動作,但是bat檔寫好後,
卻一直要我輸入密碼,於是開始研究,有甚麼方法可以確認只要是
同一台windows主機,就能直接登入遠端主機,並進行備份的方法!

最後就找到了這個憑證登入方法,只要各位使用一樣的方法,就能傳資料上去遠端的Linux上,完成git 上code或者是、ssh 連線、scp複製遠端主機資料至本地主機。


首先先來看一下概念,有興趣的朋友再看就好,沒興趣的朋友請直接往下看,可以看直接操作的圖和步驟:

直接操作的圖概念,就只有三步驟基本上就能完成,無密碼連線:

正式開始手把手教學:

第一步:打開windows powershell

第二步: 輸入 ssh-keygen -t rsa

這步電腦會問各位朋友,檔名想叫做甚麼,預設是:id_rsa,
大家可以直接按enter就好,接下來會問要不要設定密碼之類的,
請直接enter,再enter~看到下面這張圖後,就是完成key的創造!

大家可以到,C:\Users\your_user_name\.ssh資料夾下確認是否有產出兩個檔案:
1. id_rsa (private key) 請保存好,別外流
2. id_rsa.pub (public key),等等要把這個內容複製到linux的資料夾內!

第三步: 複製public key 檔案到遠端的 linux
接下來各位可以用各種方法將id_rsa.pub放到liunx上:
路徑必須是/root/.ssh/ or /home/your_user_name/.ssh
路徑取決各位是想幫root帳號增加不用密碼功能還是幫其他使用者!
放入id_rsa.pub之後檔案大概會長這樣子:
(如果沒有authorized_keys,第四步會教各位朋友創造)

第四步: 複製id_rsa.pub 內容到authorized_keys文件
先用密碼的方式連上liunx主機接下來下指令:
1. cd .ssh/
2. cat id_rsa.pub >> authorized_keys
由於是新創的檔案,必續先變更檔案權限:
3. chmod 600 authorized_keys
4. chmod 700 ~/.ssh
5. service sshd restart

基本上就能使用無密碼登入了!但是…總有但是…還是連不上….
請檢查linux另外一個檔案:
檔案路徑: /etc/ssh/
檔案名:sshd_config
看看是不是PubkeyAuthentication yes被 註解掉了!
請把#拿掉~並且存檔

在linux 主機上再下一次:
service sshd restart
就能直接使用windows powershell,無密碼登入拉:

感謝收看~


Leave a Comment