前言
SSH為Secure Shell 的縮寫,是目前較可靠,專為遠(yuǎn)程登錄會話和其他網(wǎng)絡(luò)服務(wù)提供安全性的協(xié)議。越來越多的小伙伴們使用遠(yuǎn)程登錄,而ssh安全性無疑是很高的,那么我們現(xiàn)在來看看如何實(shí)現(xiàn)ssh無密碼驗(yàn)證配置。
一. 準(zhǔn)備工作
首先要確保你的linux系統(tǒng)中已經(jīng)安裝了ssh,對于ubuntu系統(tǒng)一般默認(rèn)只安裝了ssh client,所以還需要我們手動安裝ssh server:
1
|
sudo apt-get install openssh-server |
二. SSH基本原理
2.1 基本原理
SSH之所以能夠保證安全,原因在于它采用了公鑰加密。過程如下:
- 遠(yuǎn)程主機(jī)收到用戶的登錄請求,把自己的公鑰發(fā)給用戶;
- 用戶使用這個公鑰,將登錄密碼加密后,發(fā)送回來;
- 遠(yuǎn)程主機(jī)用自己的私鑰,解密登錄密碼,如果密碼正確,就同意用戶登錄。
2.1 基本用法
SSH默認(rèn)端口號為:22,可以根據(jù)自己的需要修改默認(rèn)端口號為其它,并配合使用iptables過濾來限制遠(yuǎn)程SSH登陸的ip。常用用法如下:
1
2
3
4
|
# 使用默認(rèn)的22端口 ssh root@192.168.0.1 # 若修改過SSH默認(rèn)端口號(例如:修改為了1000),則登陸時需要指定端口號10000 ssh root@192.168.0.1 -p 10000 |
三. 配置SSH無密登陸
3.1 主要用與Hadoop集群配置中:
Hadoop運(yùn)行過程中需要管理遠(yuǎn)端Hadoop守護(hù)進(jìn)程,在Hadoop啟動以后,NameNode是通過SSH(Secure Shell)來啟動和停止各個DataNode上的各種守護(hù)進(jìn)程的。這就必須在節(jié)點(diǎn)之間執(zhí)行指令的時候是不需要輸入密碼的形式,故我們需要配置SSH運(yùn)用無密碼公鑰認(rèn)證的形式,這樣NameNode使用SSH無密碼登錄并啟動DataName進(jìn)程,同樣原理,DataNode上也能使用SSH無密碼登錄到 NameNode。
1. 首先,運(yùn)行 ssh localhost 來產(chǎn)生 /home/用戶名/.ssh 目錄,然后執(zhí)行下面命令,將生成的 “ id_rsa.pub ” 追加(這里切記是追加,不是覆蓋)到授權(quán)的key里面去。這樣的效果是實(shí)現(xiàn)了當(dāng)前用戶無密SSH登陸到自己:
1
2
3
4
|
cd ~/. ssh # 如果找不到這個文件夾,先執(zhí)行一下 "ssh localhost" ssh -keygen -t rsa # 將id_rsa.pub追加到authorized_keys cat ~/. ssh /id_rsa .pub >> ~/. ssh /authorized_keys |
2. 如果要實(shí)現(xiàn)無密登陸到其它的主機(jī),只需將生成的 “ id_rsa.pub " 追加到其它主機(jī)的 ” ~/.ssh/authorized_keys “ 中去。這里我們使用的方法是先將本機(jī)的 ” ~/.ssh/id_rsa.pub “ 拷貝到你想無密登陸的主機(jī)上,再在相應(yīng)的主機(jī)上使用 ” cat " 命令將” ~/.ssh/id_rsa.pub “ 追加到該主機(jī)的 ” ~/.ssh/authorized_keys “ 中。
1
2
3
4
5
6
7
8
9
|
# 假設(shè)我們的主機(jī)名為:A,用戶名:hadoop,ip:192.168.0.1 # 想要無密SSH登陸的主機(jī)名為:B, 用戶名:hadoop,ip:192.168.0.2 # 首先,我們使用A中的hadoop用戶拷貝 " ~/.ssh/id_rsa.pub " 到B的 " /home/hadoop/tmp/ " 目錄下 scp ~/. ssh /id_rsa .pub hadoop@192.168.0.2: /home/hadoop/tmp # 這里的ip也可以換為主機(jī)名 # 然后,ssh登陸B(tài),將 " /home/hadoop/tmp/id_rsa.pub " 追加到 " ~/.ssh/authorized_keys " 中去。 cat /home/hadoop/tmp/id_rsa .pub >> ~/. ssh /authorized_keys |
現(xiàn)在,我們就可以在A中使用SSH無密登陸到B的hadoop用戶了,同理如果想無密登陸其它的主機(jī)都可以使用此方法。需要注意的是配置hadoop集群時需要Master和Slave可以互相SSH無密登陸。
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對服務(wù)器之家的支持。
原文鏈接:http://www.cnblogs.com/lijingchn/p/5580263.html