阿里云主機(jī)ssh 免密碼登錄
網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)建站!專注于網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、小程序制作、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項(xiàng)目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了海城免費(fèi)建站歡迎大家使用!
操作系統(tǒng): CentOS 7.0 64位
CPU: 1 核
公網(wǎng)IP: 78.129.23.45
用戶名: root
密碼:bugaosuni
我在VMware下安裝的Ubuntu 14.04.本文的主要目的就是在Ubuntu上能夠免密碼登錄云主機(jī)。
具體設(shè)置步驟
Ubuntu 客戶端
在該文件夾下就會(huì)產(chǎn)生三個(gè)文件夾:id_rsa,id_rsa.pub,know_hosts。
id_rsa:存儲(chǔ)私鑰,記得只能自己看哦。別人那到這個(gè)文件就完蛋蛋咯。
id_rsa.pub:存儲(chǔ)公鑰,用來通信加密使用,有了這個(gè)人家才能確定這是你。
scp id_ rsa.pub root@78.129.23.45:/root/.ssh/id_ rsa.pub
Note:云主機(jī)上沒有.ssh/文件時(shí),你要自己建立一個(gè)。
云主機(jī)端
rm id_rsa.pub
Ubuntu 客戶端
這個(gè)時(shí)候就可以登錄云主機(jī)了
ssh root@78.129.23.45
scp遠(yuǎn)程拷貝文件時(shí)提示錯(cuò)誤:
Warning: Permanently added '10.0.0.182' (RSA) to the list of known hosts.
Permission denied (publickey).
解決:
登錄10.0.0.182,將/etc/ssh/sshd_config文件中的PasswordAuthentication no 改為PasswordAuthentication yes
重啟sshd服務(wù):/etc/init.d/sshd restart
問題解決。
原因:scp是基于ssh的拷貝服務(wù),ssh在沒有密鑰登錄的情況下,禁用了密碼登錄,故出現(xiàn)如上錯(cuò)誤。
服務(wù)端SSH 服務(wù)配置了禁止root用戶登錄策略。
處理辦法
說明:相關(guān)策略可以提高服務(wù)器的安全性。請(qǐng)用戶基于安全性和易用性權(quán)衡后,再確定是否需要修改相關(guān)配置。
要解決此問題,請(qǐng)進(jìn)行如下配置檢查和修改:
參數(shù)說明:
未配置該參數(shù),或者將參數(shù)值配置為 yes (默認(rèn)情況),都允許 root 用戶登錄。只有顯示的設(shè)置為 no 時(shí),才會(huì)阻斷root 用戶登錄。
該參數(shù)只會(huì)影響用戶的 SSH 登錄,不影響用戶通過 管理終端 等其它方式登錄系統(tǒng)。
如果需要修改相關(guān)策略配置,在繼續(xù)之前建議進(jìn)行文件備份。
使用 vi 等編輯器,將參數(shù)值設(shè)置為 yes,或者整個(gè)刪除或注釋(在最開頭添加 # 號(hào))整行配置。比如:# PermitRootLogin yes
使用如下指令重啟 SSH 服務(wù):service sshd restart
嘗試再次使用 root 用戶登錄服務(wù)器。
出現(xiàn)的問題以及解決方案
當(dāng)出現(xiàn)Permission denied (publickey,gssapi-keyex,gssapi-with-mic) 警告的時(shí)候,恭喜你,你已經(jīng)離成功很近了。
遠(yuǎn)程主機(jī)這里設(shè)為slave2,用戶為Hadoop。
本地主機(jī)設(shè)為slave1
以下都是在遠(yuǎn)程主機(jī)slave2上的配置,使得slave1可以免密碼連接到slave2上。如果想免密碼互聯(lián),原理一樣的,在slave1上也這么配置即可!
(1)首先:配置ssh服務(wù)器配置文件。
在root 用戶下才能配置。
vi /etc/ssh/sshd_config
權(quán)限設(shè)為no:
如果前面有# 號(hào),將#號(hào)去掉,之后將yes修改為no。
修改之后為:
PermitRootLogin no
UsePAM no
PasswordAuthentication no
權(quán)限設(shè)為yes:
RSAAuthentication yes
PubkeyAuthentication yes
(2)重啟sshd服務(wù)
systemctl restart sshd.service
systemctl status sshd.service #查看ssh服務(wù)的狀態(tài)
正常情況下應(yīng)該是Active:active(running)
(3)修改文件夾以及文件的權(quán)限。
(4)在slave1上進(jìn)行測(cè)試
ssh slave2
今天處理 ssh連接至 ubuntu 服務(wù)器時(shí),提示以下錯(cuò)誤:
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that a host key has just been changed.
The fingerprint for the RSA key sent by the remote host is
da:f7:3e:ba:f7:00:e6:44:76:f2:58:6e:48:******.
Please contact your system administrator.
Add correct host key in /用戶home目錄/.ssh/known_hosts to get rid of this message.
Offending RSA key in /用戶home目錄/.ssh/known_hosts:1
RSA host key for ip地址 has changed and you have requested strict checking.
Host key verification failed.
經(jīng)過google,出現(xiàn)這個(gè)問題的原因是,第一次使用SSH連接時(shí),會(huì)生成一個(gè)認(rèn)證,儲(chǔ)存在客戶端的known_hosts中。
可使用以下指令查看:
ssh-keygen -l -f ~/.ssh/known_hosts
由于服務(wù)器重新安裝系統(tǒng)了,所以會(huì)出現(xiàn)以上錯(cuò)誤。
解決辦法
ssh-keygen -R 服務(wù)器端的ip地址
會(huì)出現(xiàn)以下提示:
/用戶home目錄/.ssh/known_hosts updated.
Original contents retained as /用戶home目錄/.ssh/known_hosts.old
重新連線,出現(xiàn)以下提示:
The authenticity of host '192.168.3.10 (192.168.3.10)' can't be established.
RSA key fingerprint is da:f7:3e:ba:f7:00:e6:44:76:f2:58:6e:48:****.
Are you sure you want to continue connecting (yes/no)?
1、首先登陸阿里云網(wǎng)站,進(jìn)入控制臺(tái),點(diǎn)擊云服務(wù)zhi器ECS,進(jìn)入服務(wù)器控制臺(tái),點(diǎn)擊要選擇的服務(wù)器。
2、進(jìn)入服務(wù)器實(shí)例列表,找到想要增加端口的實(shí)例,點(diǎn)擊后面的更多,再點(diǎn)擊網(wǎng)絡(luò)和安全組,在選擇安全組配置按鈕。
3、點(diǎn)擊更多后列表中找到安全組配置,并點(diǎn)擊規(guī)則。
4、跳轉(zhuǎn)到的頁(yè)面里,如果想添加新的端口就點(diǎn)擊手動(dòng)添加。
5、在彈出窗口中輸入內(nèi)容,比如添加22端口,就在端口范圍里輸入以22/22, 在授權(quán)對(duì)象里輸入“0.0.0.0/0”意思是允許所有訪問 。
6、點(diǎn)擊確定后看看安全組規(guī)則中是否多了一個(gè)22的端口,就設(shè)置成功了。
步驟1 vim /etc/ssh/sshd_config;
修改端口號(hào)
步驟2 執(zhí)行/etc/init.d/sshd restart
這樣SSH端口將同時(shí)工作與22和1022上
步驟3 現(xiàn)在編輯防火墻配置:
添加 -A INPUT -m state --state NEW -m tcp -p tcp --dport 1022 -j ACCEPT
重啟防火墻服務(wù):
步驟4 現(xiàn)在請(qǐng)使用ssh工具連接1022端口,來測(cè)試是否成功。
開一臺(tái)阿里云服務(wù)器
1. 進(jìn)入實(shí)例詳情頁(yè)面,在 "網(wǎng)絡(luò)信息" 模塊,點(diǎn)擊右方 更多 按鈕,下拉框選擇 "管理IPv6"
2. 步驟1完成后,彈出一個(gè)彈框,標(biāo)題為 "管理輔助私網(wǎng)IP?",在下面 ipv6地址,點(diǎn)擊 "分配新ip"
3. 分配ipv6地址成功后,需要給該地址開通公網(wǎng)帶寬,進(jìn)入ipv6網(wǎng)關(guān)詳情頁(yè)面,找到對(duì)應(yīng)的ipv6地址,右方操作欄點(diǎn)擊 "開通公網(wǎng)帶寬"
4. 服務(wù)器擁有ipv6公網(wǎng)ip,終端執(zhí)行 ping6 ipv6地址 測(cè)試是否能正常訪問,如果失敗了,可能是服務(wù)器實(shí)例的安全組規(guī)則中沒有放行 ipv6 地址訪問,添加一條新規(guī)則,入方向允許 ::1 來源的訪問
ssh通過ipv6地址遠(yuǎn)程登錄服務(wù)器,格式和ipv4一樣,例如:ssh root@2408:4006:1101::1900
注意,ssh通過ipv6登錄服務(wù)器,需要該服務(wù)器sshd已經(jīng)配置可以通過ipv6登錄,若未配置,需要先登錄到該服務(wù)器,修改sshd配置文件
① vim /etc/ssh/sshd_config
②輸入/AddressFamily,將值修改為 any 后保存文件 (適用于ipv4和ipv6,若為inet則適用于ipv4,inet6適用于ipv6)
③重啟ssh,/etc/init.d/ssh restart,重啟后ssh就可以通過ipv6遠(yuǎn)程登錄該服務(wù)器了
參考阿里云幫助文檔:
下面提供去除該提示的方法。
1.
使用ssh連接遠(yuǎn)程主機(jī)時(shí)加上逗-o
StrictHostKeyChecking=no地的選項(xiàng),如下:
ssh
-o
StrictHostKeyChecking=no
192.168.xxx.xxx
2.
一個(gè)徹底去掉這個(gè)提示的方法是,修改/etc/ssh/ssh_config文件(或$HOME/.ssh/config)中的配置,添加如下兩行配置:
StrictHostKeyChecking
no
UserKnownHostsFile
/dev/null
修改好配置后,重新啟動(dòng)sshd服務(wù)即可,命令為:/etc/init.d/sshd
restart
(或
service
sshd
restart
)
當(dāng)然,這是內(nèi)網(wǎng)中非常信任的服務(wù)器之間的ssh連接,所以不考慮安全問題,就直接去掉了主機(jī)密鑰(host
key)的檢查。
ssh中遇到的逗Host
key
verification
failed.地問題,也是和逗StrictHostKeyChecking地配置有關(guān)。