ssh免密碼登入,折騰了我一天~~~,如果用root許可權的話挺簡單的,但是這樣著實有些不正規,畢竟我是專業的好伐~~
所以帶來了很多奇怪的問題,當解決了的時候發現,其實也沒那麼麻煩。
以下是我最開始用root使用者做的117單向無密碼連線到118,119,120。這個是構建 hdfs-HA-Federation+yarn之前必須要做的。
在設定免密碼登入之前,要把自己的hosts中配置好每一個ip對應的名字,方便將來切換和使用,將自己的hostname順便也改了吧,不改也是可以的。
1. 首先要使用下面的命令來生成ssh免密碼的金鑰:
[root@localhost ~]# ssh-keygen -t rsa -P ''
一路回車,如果之前有過,可以選擇yes覆蓋之前的金鑰~~
Generating public/private rsa key pair. Enter file in which to save the key (/root/.ssh/id_rsa): Created directory '/root/.ssh'. Your identification has been saved in /root/.ssh/id_rsa. Your public key has been saved in /root/.ssh/id_rsa.pub. The key fingerprint is: ca:14:3d:fa:96:ba:41:17:c6:60:7d:dc:31:67:9e:b8 root@localhost.localdomain The key's randomart image is: +--[ RSA 2048]----+ | o. . .o.o | | . +. o .* . | | . *. . o | | + o . | | + S E | | + + . | | + + | | + | | o. | +-----------------+
2.進入該使用者的根目錄,會有隱藏的.ssh資料夾,進入後會看到有個id_rsa.pub,這個就是免密碼的金鑰。將這個金鑰追加到authorized_keys中。
[root@localhost .ssh]# cat id_rsa.pub >> authorized_keys
必須將authorized_keys修改許可權為600,說實話我也不知道為啥。
[root@localhost .ssh]# chmod 600 authorized_keys
3.不管用什麼方式,將生成的金鑰傳給要免密碼的伺服器中(將金鑰分別給到118,119,120)。把自己金鑰給了哪臺機器,自己就可以登入哪臺機器
[root@localhost .ssh]# scp id_rsa.pub root@192.168.75.118:/home/id_rsa.pub
複製過去之後重複上面的操作,將傳遞過來的id_rsa.pub中的值追加到生成的authorized_keys(其實直接複製到authorized_keys中就可以,同時也要將許可權設定為600)
4.在root許可權下,編輯sshd_config檔案:
[root@localhost .ssh]# vim /etc/ssh/sshd_config
將RSAAuthentication 和PubkeyAuthentication 的註釋取消,並修改AuthorizedKeyFile的位置(這個位置是相對於進入使用者的位置,而不是root下的位置)
RSAAuthentication yes #啟用RSA認證 PubkeyAuthentication yes #啟用公鑰私鑰配對認證方式
# The default is to check both .ssh/authorized_keys and .ssh/authorized_keys2 # but this is overridden so installations will only check .ssh/authorized_keys
AuthorizedKeysFile .ssh/authorized_keys# 公鑰檔案路徑(和上面生成的檔案同)
配置好之後重啟ssh服務:
[root@localhost .ssh]# service sshd restart
Redirecting to /bin/systemctl restart sshd.service
5.測試一下吧~~
[root@qiang117 ~]# ssh node117 Last login: Tue Aug 18 07:48:58 2015 [root@qiang117 ~]# exit logout Connection to node117 closed. [root@qiang117 ~]# ssh node118 Last login: Tue Aug 18 07:46:59 2015 from node117 [root@qiang118 ~]# exit logout Connection to node118 closed. [root@qiang117 ~]# ssh node119 Last login: Tue Aug 18 07:47:17 2015 from node117 [root@localhost ~]# exit logout Connection to node119 closed. [root@qiang117 ~]# ssh node120 Last login: Tue Aug 18 07:47:39 2015 from node117 [root@localhost ~]# exit logout Connection to node120 closed. [root@qiang117 ~]#
這個是後來用非root使用者做的免密碼登入(需要注意的是,每個伺服器的使用者名稱字應該是一樣的,事實證明不然連不上...)
[qiang@qiang117 ~]$ ssh node117 Last login: Tue Aug 18 08:59:20 2015 [qiang@qiang117 ~]$ ssh node118 Last login: Tue Aug 18 08:59:27 2015 from node117 [qiang@qiang118 ~]$ exit logout Connection to node118 closed. [qiang@qiang117 ~]$ ssh node119 Last login: Tue Aug 18 08:59:40 2015 from node117 [qiang@qiang119 ~]$ exit logout Connection to node119 closed. [qiang@qiang117 ~]$ ssh node120 Last login: Tue Aug 18 09:00:39 2015 from node120 [qiang@qiang120 ~]$ exit logout Connection to node120 closed. [qiang@qiang117 ~]$
建立好新的使用者之後,在該使用者根目錄下重新獲取金鑰,這與root使用者下生成的金鑰是不一樣的~