ssh無密碼登錄

廢話不多說,直接進正題
首先,root修改/etc/ssh/sshd_config文件(客戶端、服務器都需要更改
將“#AuthorizedKeysFile      .ssh/authorized_keys”前面的#號去掉
即,啓用“AuthorizedKeysFile      .ssh/authorized_keys
(如果需要root也能ssh登錄,把“#PermitRootLogin yes”前面的#號也去掉)
同樣root賬戶下,/etc/rc.d/init.d/sshd  restart重啓sshd服務使之生效
客戶端中)切換到需要ssh登錄的帳戶下:
ssh-keygen  -t  rsa   產生公私鑰對
回車   採用默認文件保存鑰匙
xxxxx 回車   鍵入密碼短語,直接回車爲不建立密碼短語。密碼短語至少5個字符
xxxxx 回車   重複密碼短語,直接回車爲不建立密碼短語
公私鑰產生在此賬戶的.ssh目錄中,id_rsa爲私鑰,id_rsa.pub爲公鑰
服務器)切換到需要ssh登錄的帳戶下:
如果服務器中尚未建立公私鑰對,那麼首先按照客戶端的方法建立公私鑰對
scp  賬戶名@客戶端主機名或ip地址:/home/帳戶名/.ssh/id_rsa.pub  /home/帳戶名/
將客戶端賬戶的公鑰拷到服務器中。客戶端用主機名或ip地址均可,但是需與ssh登錄命令相符,建議將主機名與ip地址寫入/etc/hosts中,此處用主機名即可(下同)。
yes   將客戶端寫入known_hosts中
輸入客戶端中的賬戶密碼完成複製
cat  /home/帳戶名/id_rsa.pub  >>/home/帳戶名/.ssh/authorized_keys   將id_rsa.pub中的內桶添加到authorized_keys文件中,authorized_keys文件名需與sshd_config中的設置相符。
chmod  644  /home/帳戶名/.ssh/authorized_keys   修改authorized_keys文件的權限,至少爲644,也可更爲嚴厲(600),不修改的話ssh無密碼登錄不起作用。
客戶端中)切換到需要ssh登錄的帳戶下:
ssh  服務器主機名   登錄服務器,若在服務器與客戶端中的帳戶名不同,則
ssh  帳戶名@服務器主機名
yes    將服務器寫入known_hosts中
若產生公私鑰時設置了密碼短語,還需要輸入密碼短語,爲了方便,可在客戶端中
ssh-add,然後輸入密碼短語,下次再ssh登錄,無需再輸入密碼短語
 
關於公私鑰對的一點理解:
公 私鑰對就像是一套鑰匙和鎖,公鑰是鎖,私鑰是鑰匙。私鑰留在客戶端中,公鑰發給服務器。服務器可以有很多把鎖,客戶端只有一把鑰匙。當客戶端ssh登錄服 務器時,服務器會找到這個客戶端發的鎖,然後跟客戶端要鑰匙,如果鑰匙是配套的,那麼登錄成功,反之登錄失敗。當然,以上是針對同一個用戶說的,不同用戶 的公私鑰對也不同,而且每次ssh-keygen產生的公私鑰對也不同。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章