2012-03-16 18 views
12

鍵被正確部署在〜/ .ssh/authorized_keys中紅帽6 /甲骨文的Linux 6不會通過SSH允許密鑰認證

然而SSH不斷提示輸入密碼。

+1

檢查/ var /日誌/安全將有信息,如果公開密鑰失敗權威性。 〜/ .ssh中的文件很可能具有錯誤的讀/寫權限。 – mguymon 2012-03-16 17:12:45

+0

在我的情況下,燙髮很好。它與SELinux有關,見下文 – 2012-03-16 18:18:18

回答

28

幾個問題,主要是權限 - 也涉及到了SELinux在RedHat 6

下面的腳本應該可以解決所有這些,請與您匹配的用戶名和組取代<user>:<group>

chown -R <user>:<group> ~/.ssh 
chmod 700 ~/.ssh 
chmod 600 ~/.ssh/* 
restorecon -R -v ~/.ssh 
+3

即使它們位於受保護的目錄內,也不應該將文件權限更改爲世界可讀性 'restorecon -R -v $ HOME/.ssh'對我來說是什麼 – feniix 2013-04-01 22:47:52

+0

是的,它應該只是所有者訪問。在我的rhel6中仍然可以使用600 – feniix 2013-04-02 17:23:43

+0

你的意思是我的建議很糟糕?因爲我看到你編輯了600個文件的響應。 – feniix 2013-04-11 16:05:50

1

以上回答是相當不錯,我還有一個建議&。添加在下面的第2行中,因爲主目錄權限不比rwxr-x更容許ssh密鑰身份驗證。

cd ~ 
chmod g-w,o-rwx . 
chmod 700 .ssh 
cd .ssh 
chmod 600 * 
chmod 644 authorized_keys 
chmod 644 known_hosts 
chmod 644 config 
restorecon -R -v ../.ssh 

建議在測試時使用-vv選項。

+0

你可能是指''o-rwx'',而不是''u-rwx'' :) – darkk 2012-10-03 06:17:40

+0

好抓!在chmod/chown命令中,'u'和'o'有一個反覆出現的助記符問題。 'o'是'其他',而不是'所有者'! – nortally 2014-07-17 22:12:34

5

我同意上面對root帳戶中大多數linux變體的修改。 我在嘗試獲取postgres用戶帳戶以使用DSA身份驗證時遇到了RedHat 6.3的問題。 (6.3在VirtualBox中運行)

問題可能在於基本的selinux權限是錯誤的。 Restorecon在這種情況下不會提供幫助。

(After restorecon) 
drwx------. postgres postgres unconfined_u:object_r:var_lib_t:s0 .ssh 

我已經有固定的:

chcon -R -t ssh_home_t .ssh 

這解決了這個問題的實例。

+0

我一直在尋找這個答案的三天!直到我在授權密鑰文件上運行統計信息時,我才注意到文件上有一個SELinux上下文。我將它與不同用戶的授權密鑰文件進行了比較,並注意到其中的差異!謝謝,Greg! – BamaPookie 2015-07-07 15:02:36

+0

我發現的另外一點:如果隨後在此.ssh目錄中運行restorecon,則將失去使用chcon命令所做的更改。您還需要添加一個策略,以便在文件系統重新標記上正確地重新應用上下文。我用下面的命令做了這個:semanage fcontext -a -t ssh_home_t「/path/to/service/home/.ssh(/.*)?」。 (請務必使用完整路徑。) – BamaPookie 2015-07-07 15:43:04

+1

更正的命令:semanage fcontext -a -t ssh_home_t「/path/to/service/home/\.ssh(/.*)?」 – BamaPookie 2015-07-07 16:13:12

1

我也有同樣的問題,上面提出的解決方案並沒有解決我的情況。總結說明abowe在一起:以下錯誤的可能細節目標系統上的日誌文件

  1. 檢查:在/ var /日誌/安全文件的
  2. 權限在用戶的〜/ .ssh目錄應該是600和文件應該是擁有「用戶:組」
  3. 權限〜/ .ssh目錄應該是700並擁有「用戶:組」
  4. 用戶的主目錄權限即。 「〜」(=「〜/ .ssh/..」)應該是755.如果權限是f.ex 775,那麼系統中的ssh密鑰拒絕失敗。

BR 布魯諾

+0

這條指令是否爲您解決了這個問題?或者它只是一個彙編? – 2015-06-24 10:44:27