linux 添加ssh免密登錄


環境:

  usera:192.168.0.1

  userb:192.168.0.2

客戶端創建密鑰文件:

 <1>查看是否安裝了ssh

          一般情況下,系統都自帶有ssh,查看ssh是否安裝命令:ssh -version,

       

         如果沒有安裝ssh,在命令行下輸入:yum install ssh進行安裝,可以參考下面的博文

         http://www.cnblogs.com/alaska1131/articles/1659654.html

  <2>在客戶端節點創建密鑰文件

                查看客戶端節點是否已經創建了密鑰文件,我們一usera為例。打開命令行,輸入以下

          指令: ls ~/.ssh,查看是否有密鑰存在。

     

    發現沒有密鑰文件,也就是沒有公鑰(id_rsa.pub)和私鑰(id_rsa)在usera上面創建密鑰,打開命令行,輸入以下指令:ssh-keygen -t rsa,注意,這個命令行ssh 和 -keygen中間沒有空格,如果寫成ssh -keygen -t rsa,會報錯誤:

          Bad escape  character 'ygen'

          

    輸入完ssh-keygen - rsa后,一直默認Enter下去,密碼為空就行。如下圖所示,說明生成密鑰成功

          

 然后,繼續在命令行下輸入ls ~/.ssh,查看是否多了兩個文件(id_rsa.pub和id_rsa)

           

  好,到這里,客戶端節點的密鑰文件已經創建完成,按照上述方法,依舊在userb節點上一次創建密鑰文件。

 

5.將各客戶端節點的公鑰寫入centosNameNode中

   <1>將usera自己的公鑰寫入到自己的~/.ssh/authorized_keys中

          打開命令行,輸入

cd ~/.ssh                               #切換目錄到~/.ssh下
 
ls                                      #再次確認是否有密鑰
 
cat id_rsa.pub >> authorized_keys       #將公鑰寫入

在命令行下輸入vi ~/.ssh/authorized_keys,發現公鑰已經寫入了

OK,然后,就是修改sshd以及上面所提到的authorized_keys以及目錄~/.ssh權限的修改  

chmod 700 ~/.ssh
 
chmod 600 ~/.ssh/authorized_keyschmod 700 ~/.ssh
 
chmod 600 ~/.ssh/authorized_keys

<3>驗證自己ssh自己

          打開命令行,輸入:

          ssh 192.168.0.1                  #usera的ip

          發現並沒有要求輸入密碼,而是自動登陸了,說明自己的配置成功了,事實上Hadoop的偽分布式模式就是自己遠程登陸自己

<4>將其他兩個節點的公鑰加進來

          登錄到userb,進入到命令行,輸入:

cd ~/.ssh                         #進入到ssh目錄下面

ls                                #檢測目錄下面是否有密匙

scp id_rsa.pub usera@192.168.0.1:/home/roboson      #將文件傳遞到Ip地址為
                                                    #192.168.0.1(usera)
                                                    #/home/roboson目錄下

然后,登錄到usera上,查看是否收到,輸入指令:

cd /home/roboson                      #切換目錄

ls                                    #查看目錄下的文件

然后,將公鑰寫入到centosNameNode的~/.ssh/authorized_keys文件中,打開命令 行,輸入指令:

cat /home/roboson/id_rsa.pub >>~/.ssh/authorized_keys

然后,輸入vi ~/.ssh/authorized_keys指令,發現文件中又多了一堆數字

接下來,重啟sshd(上面有),登錄到usera,然后,在usera中,用ssh遠程登陸到usera中,看是否需要密碼驗證

有的時候,會報這樣的錯

Agent admitted failure to sign using the key

解決方法:

在當前用戶下執行命令:

ssh-add

然后,利用同樣的方法,將userb的公鑰也加入。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM