1. 程式人生 > >linux下配置公鑰私鑰

linux下配置公鑰私鑰

假設 A 為客戶機器,B為目標機;

要達到的目的:
A機器ssh登入B機器無需輸入密碼;
加密方式選 rsa|dsa均可以,預設dsa

做法:
1、登入A機器
2、ssh-keygen -t [rsa|dsa],將會生成金鑰檔案和私鑰檔案 id_rsa,id_rsa.pub或id_dsa,id_dsa.pub
3、將 .pub 檔案複製到B機器的 .ssh 目錄, 並 cat id_dsa.pub >> ~/.ssh/authorized_keys
4、大功告成,從A機器登入B機器的目標賬戶,不再需要密碼了;

ssh-keygen做密碼驗證可以使在向對方機器上ssh ,scp不用使用密碼.
具體方法如下:
ssh-keygen -t rsa
然後全部回車,採用預設值.

這樣生成了一對金鑰,存放在使用者目錄的~/.ssh下。
將公鑰考到對方機器的使用者目錄下,並拷到~/.ssh/authorized_keys中。

要保證.ssh和authorized_keys都只有使用者自己有寫許可權。否則驗證無效。(今天就是遇到這個問題,找了好久問題所在),其實仔細想想,這樣做是為了不會出現系統漏洞

注意 最後一定要在客戶端和伺服器 執行chmod -R 700 .ssh/ 否則配置是不成功的(每次登入都得重新去輸入密碼的)。

私鑰檔案的許可權為什麼不能設定為755

1、問題描述

在I.Mx6載入啟動資訊時輸出如下內容

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@         WARNING: UNPROTECTED PRIVATE KEY FILE!          @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 
0755 for /usr/local/openssh/etc/ssh_host_rsa_key are too open. It is required that your private key files are NOT accessible by others. This private key will be ignored. bad permissions: ignore key: /usr/local/openssh/etc/ssh_host_rsa_key Could not load host key: /usr/local/openssh/etc/ssh_host_rsa_key

2、解決方法

設定私鑰檔案的許可權為700,公鑰檔案(.pub檔案)的許可權為755

3、原因

在以NFS方式載入檔案系統時,加檔案系統中的所有檔案改成777的許可權。

而載入私鑰檔案時,若其許可權為777則認為非法。

這是由於:基於“公私鑰”認證的方式進行ssh登入的情況,會生成一對公私鑰(公鑰檔名類似x.pub,私鑰檔名x)

然後公鑰放在伺服器上,自已保留私鑰,當進行ssh登入,ssh程式會發送私鑰到伺服器與伺服器上的公鑰做匹配,匹配

成功方可登入。這裡有一個安全問題,若私鑰檔案被別人盜取了怎麼辦?linux中通過強制設私鑰檔案的許可權為700,這樣

賬號沒盜取的情況下,私鑰檔案是不能被訪問到的,實現了一定程度上的安全保證。