1. 程式人生 > >centos配置ssh免密碼登入後仍要輸入密碼的解決方法

centos配置ssh免密碼登入後仍要輸入密碼的解決方法

前言

在搭建Linux叢集服務的時候,主伺服器需要啟動從伺服器的服務,如果通過手動啟動,叢集內伺服器幾臺還好,要是像阿里1000臺的雲梯Hadoop叢集的話,軌跡啟動一次叢集就得幾個工程師一兩天時間,是不是很恐怖。如果使用免密登入,主伺服器就能通過程式執行啟動腳步,自動幫我們將從伺服器的應用啟動。而這一切就是建立在ssh服務的免密碼登入之上的。所以要學習叢集部署,就必須瞭解linux的免密碼登入。

第一步:在本機中建立祕鑰

1、執行命令:

ssh-keygen -t rsa -C "[email protected]" 

(隨便編個字串,一般用郵箱)

2、之後一路回車就行啦;會在~(home)目錄下中產生.ssh(隱藏)資料夾;

3、裡面有兩個檔案id_rsa(私鑰)、id_rsa.pub(公鑰)檔案

注意事項:

①在liunx環境下,要想複製公鑰或是私鑰,不要使用vim等編輯器開啟檔案來複制貼上;

因為它會產生不必要的回車。

②應該使用cat把內容列印到終端上再來複制貼上;

第二步:用 ssh-copy-id 把公鑰複製到遠端主機上

ssh-copy-id [email protected] 

把祕鑰拷貝到遠端伺服器

用這種方式拷貝使用的埠是Linux預設的22,如果你想指定埠,可以使用:

ssh-copy-id -i /使用者名稱/.ssh/id_rsa.pub '-p 埠號 使用者名稱@106.75.52.44'

ssh-copy-id -i /root/.ssh/id_rsa.pub '-p 22222 
[email protected]
'

這裡可能需要等一段時間,反正我是等了挺久的時間,然後顯示要你輸入密碼:

[email protected]'s password:

輸入完密碼後,顯示:

Now try logging into the machine, with "ssh '-p 22222 [email protected]'", and check in:
.ssh/authorized_keys

to make sure we haven't added extra keys that you weren't expecting.

表示成功了!

第三步: 遠端登入

[[email protected]
~]$ ssh [email protected] Last login: Mon Oct 10 14:18:54 2016 from 192.168.161.135 ssh [email protected] -p 22222

注意

遇到的大坑:

配置ssh免密碼登入後,仍提示輸入密碼

解決方法:

首先我們就要去檢視系統的日誌檔案

tail /var/log/secure -n 20

發現問題的所在:Authentication refused: bad ownership or modes for file

從字面上可以看出是目錄的屬主和許可權配置不當,查詢資料得知:SSH不希望home目錄和~/.ssh目錄對組有寫許可權,通過下面幾條命令改下

chmod g-w /home/zhangming 
chmod 700 /home/zhangming/.ssh
chmod 600 /home/zhangming/.ssh/authorized_keys

然後我們再去登入,就能不用密碼進入了。

有木有很高興呀!

相關推薦

no