介紹越來越多的linux中使用的元件都需要無密碼登入,索性把這個作為第一篇文章吧。我們現在有一組安裝了linux作業系統的機器,每台機器上都有乙個名叫test的使用者。我們希望在這組機器之間做無密碼登入時都使用test使用者。每個機器都有乙個唯一的主機名:比如 node1, node2, node3……
修改機器配置
1. 切換到root使用者
2. 編輯 /etc/hosts 檔案,把所有機器的ip和主機名都寫在裡面
3. 編輯 /etc/sysconfig/network 檔案 設定hostname=主機名
4. 執行命令:hostname 主機名
5. 編輯 /etc/ssh/sshd_config 檔案,把47,48,49三行的注釋放開。這三行的內容是:
rsaauthentication yes 允許用rsa金鑰進行身份驗證
pubkeyautentication yes 允許用公鑰進行身份驗證
authorizedkeysfile .ssh/authorized_keys本機儲存的公鑰的檔案(這個比較重要)
6. 切換回test使用者
建立金鑰
用test使用者做如下操作
1. 進入到test使用者的home 目錄,檢視有無隱藏路徑是 .ssh。如果沒有,建立乙個。
2. 檢視.ssh目錄的許可權,是否是 700 (drwx --- ---) 不是的話修改為700
3. 進入.ssh 目錄
4. 生成ssh金鑰ssh-keygen –t rsa –f ./***x
此命令幫你生成了乙個私鑰和乙個公鑰。最後這個***x是私鑰檔案的名字,你隨便定,公鑰名字就是***x.pub 。(需要腦補公鑰與私鑰相關知識點這裡)
生成key檔案
用test使用者做如下操作
1. 在第一台機器的 ~/.ssh/目錄下建立乙個名字叫authorized_keys 的檔案。注意這個檔案的許可權是600
2. 把你的公鑰檔案的內容追加到authorized_keys 檔案中 cat***x/pub >> authorized_keys
3. 把authorized_keys檔案傳送到第二台機器上的 ~/.ssh/目錄下,再把第二台機器上的公鑰檔案追加進來。
4. 這樣我們一台一台機器的做下去,最後一台機器做完以後,這個機器上的authorized_keys檔案就是我們需要的。我們把它傳送回之前那些機器上,注意儲存路徑為 ~/.ssh/ 原有的直接覆蓋掉就可以了。
把私鑰加到 ssh –agent服務中
用test使用者做如下操作
1. 進入到test 使用者的home目錄
2. 開啟 .bash_profile檔案
3. 在該檔案最後加入如下兩行
a) eval `ssh-agent -s`
b) ssh-add ~/.ssh/***x
這裡的***x就是你的私鑰檔案的名字
ok了重新啟動你的linux集群中的所有機器之後,用test使用者登入隨便一台機器,都可以用ssh
主機名 做無密碼登入了。
附錄-遠端拷貝檔案的方法
在不同機器間互相拷貝檔案是乙個很實用的功能,我們用scp命令來做
scp
檔名使用者名稱
@ip或主機名
:儲存路徑
Linux配置集群內節點無密碼登入
最近有小夥伴問到ambari搭建的問題,在實踐過程中實在是收穫不少。不出意外的話我會陸續更新博文 這裡先來說一下如何配置集群間的ssh無密登入。測試集群現有5個節點 node01 到 node05 現在想要節點間可以無密碼ssh登入。master作為客戶端,要實現無密碼公鑰認證,連線到伺服器salv...
linux無密碼登入
假設有a b兩台機器 1 兩天機器上分別 執行ssh keygen t rsa,不用任何輸入,回車到底。2 把a b機器的 ssh id rsa.pub 內容彼此新增到對方 ssh authorized keys檔案中。解析 a機器的 ssh id rsa.pub在b的 ssh authorized...
Linux間無密碼ssh
來自 靈犀志趣 的指令碼來完成無密碼驗證,省事省力。執行方式 sh nopasswd user remote host 執行此指令碼前,請確認 nopasswd 將本地已經生成的id dsa.pub拷貝到需要訪問的機器home下,然後將id dsa.pub的內容增加到 ssh authorized ...