萬盛學電腦網

 萬盛學電腦網 >> Linux教程 >> Linux中如何使用rsa免密碼登錄

Linux中如何使用rsa免密碼登錄

  在Linux系統中登錄需要使用密碼,那麼有什麼方法能夠不使用密碼就能登錄系統呢?下面小編就給大家介紹下如何使用ssh中的rsa免密碼登錄Linux,一起來學習下吧。

 Linux中如何使用rsa免密碼登錄

  A為本地主機(即用於控制其他主機的機器) ;

  B為遠程主機(即被控制的機器Server), 假如ip為172.24.253.2 ;

  在A上的命令:

  代碼如下:

  ssh-keygen -t rsa

  (連續三次回車,即在本地生成了公鑰和私鑰,不設置密碼,生成的公鑰私鑰在~/.ssh目錄下,id_rsa是私鑰, id_rsa.pub是公鑰 )

  代碼如下:

  ssh 《a href=“mailto:[email protected]”》[email protected]《/a》

  mkdir .ssh

  chmod 700 .ssh

  (需要輸入密碼, 注:必須將.ssh的權限設為700)

  代碼如下:

  scp ~/.ssh/id_rsa.pub 《a href=“mailto:[email protected]:~/.ssh”》[email protected]:~/.ssh《/a》

  然後在服務器上建立authorized_keys文件:

  代碼如下:

  touch ~/.ssh/authorized_keys

  chmod 600 ~/.ssh/authorized_keys

  (注意: 必須將~/.ssh/authorized_keys的權限改為600, 該文件用於保存ssh客戶端生成的公鑰,可以修改服務器的ssh服務端配置文件/etc/ssh/sshd_config來換文件名,默認是叫authorized_keys)

  代碼如下:

  cat id_rsa.pub 》》 authorized_keys

  # (將id_rsa.pub的內容追加到 authorized_keys 中, 注意不要用 》 ,否則會清空原有的內容,使其他人無法使用原有的密鑰登錄)

  回到A機器:

  代碼如下:

  # ssh 《a href=“mailto:[email protected]”》[email protected]《/a》 (不需要密碼, 登錄成功)

  從表面上簡單的理解一下登錄的過程,

  首先 ssh-keygen -t rsa 命令生成了一個密鑰和一個公鑰, 而且密鑰可以設置自己的密碼

  可以把密鑰理解成一把鑰匙, 公鑰理解成這把鑰匙對應的鎖頭,

  把鎖頭(公鑰)放到想要控制的server上, 鎖住server, 只有擁有鑰匙(密鑰)的人, 才能打開鎖頭, 進入server並控制

  而對於擁有這把鑰匙的人, 必需得知道鑰匙本身的密碼,才能使用這把鑰匙 (除非這把鑰匙沒設置密碼), 這樣就可以防止鑰匙被了配了(私鑰被人復制)

  更簡潔的方式:

  步驟1、如果服務器上沒有authorized_keys文件,則:(如果有則跳過這一步)

  代碼如下:

  ssh 《a href=“mailto:[email protected]”》[email protected]《/a》

  mkdir .ssh

  chmod 700 .ssh

  touch ~/.ssh/authorized_keys

  chmod 600 ~/.ssh/authorized_keys

  步驟2、在本機:

  代碼如下:

  ssh-keygen -t rsa

  ssh-copy-id -i ~/.ssh/id_rsa.pub 《a href=“mailto:[email protected]”》[email protected]《/a》

  ssh-keygen -t rsa #之後三下回車,表示無密碼。即可。

  注: ssh-copy-id 自動把密鑰追加到遠程主機的 .ssh/authorized_key 上

  上面就是Linux下使用ssh中的rsa免密碼登錄的方法介紹了,使用該方法你就能登錄本機,是不是很方便呢?趕緊試一下吧。

copyright © 萬盛學電腦網 all rights reserved