本章提供一些您可能會收到的錯誤訊息解決之道,以及某些使用 SEAM 時遇到的各種問題的疑難排解要訣。本章所含的錯誤訊息及疑難排解資訊如下所列。
本節中提供有關 SEAM 錯誤訊息的資訊,包括每個錯誤發生的原因及其修復的方法。
無法檢視主管或政策的清單,請使用「名稱」欄位。 |
您所登入的管理主管身份,沒有存取 Kerberos ACL 檔案 (kadm5.acl) 中清單的許可 (l),所以您無法檢視主管或政策清單。
您必須在「名稱」欄位中輸入主管及政策名稱來解決此問題,或是以一個擁有適當許可的主管身份來登入。
JNI: Java 陣列的建立失敗。 JNI: Java 類別的查詢失敗。 JNI: Java 欄位的查詢失敗。 JNI: Java 方法的查詢失敗。 JNI: Java 物件的查詢失敗。 JNI: Java 物件欄位的查詢失敗。 JNI: Java 字串的存取失敗。 JNI: Java 字串的建立失敗。 |
SEAM 管理工具 (gkadmin) 所用的 Java 本機介面 (Native Interface) 有嚴重的問題。
請結束 gkadmin 並且重新將它啟動。如果問題仍然存在,請報告程式錯誤。
本節將依照英文字母的順序列出 SEAM 指令、SEAM 常駐程式、PAM 架構、GSS 介面、及 Kerberos 程式庫中較常見的錯誤訊息清單 (A-M)。
major_error minor_error 匯入名稱時發生 gssapi 錯誤。 |
在匯入一個服務名稱時發生錯誤。
請確定主機或 ftp 服務主管位於主機密鑰表檔案中。
停用所有的辯證系統,連線遭拒。 |
本版的 rlogind 並不支援任何辯證機制。
請確定以 -k 選項來調用 rlogind。事實上,這應該是 inetd.conf 檔案中所指定的預設值。
必須使用另一個辯證機制來存取此主機。 |
無法完成辯證。
請確定客戶端是使用 Kerberos V5 來進行辯證。
加密所需的辯證協調已失敗。再見。 |
辯證無法與伺服器協調。
請調用 telnet 指令 toggle authdebug 來開始辯證除錯功能,並且查看除錯訊息是否有其他的線索。同時請確定您的證書仍然有效。
初始化 kadmin 介面時的 krb5 管理伺服器主機名稱不正確。 |
krb5.conf檔案中所設置的管理伺服器(主 KDC)主機名稱無效。
請確定 krb5.conf 檔案中指定了正確的管理伺服器(主 KDC)主機名稱。
無法與任何所要求的範疇的 KDC 取得聯繫。 |
所要求的範疇中沒有回應任何 KDC。
請確定至少有一個 KDC(主或是從屬)可以存取,或者是在 KDC 上有執行 krb5kdc 常駐程式。請檢查 /etc/krb5/krb5.conf 和是否有設置的 KDC 清單 (kdc = kdc_name)。
無法決定主機的範疇。 |
Kerberos 無法決定主機的範疇名稱。
請確定有一個預設的範疇名稱,或是在 Kerberos 設置檔案中設定了領域名稱對映 (krb5.conf)。
無法加密寫入網路。 |
加密資料時會發生問題。
請檢查系統上其他可能的問題。查看其他 syslog 訊息以找出可能的線索。
找不到所要求範疇的 KDC。 |
在要求的範疇中找不到任何的 KDC。
請確定 Kerberos 設置檔案 (krb5.conf) 在範疇段落中指定了一個 KDC。
無法將範疇 realm_name 初始化。realm_name |
KDC 可能沒有任何存放檔案。
請確定 KDC 有一個存放檔案。如果沒有,請使用 kdb5_util(1M) 指令來建立一個,然後再一次試著執行 krb5kdc (/etc/init.d/kdc)。
無法為所要求的範疇解析 KDC。 |
Kerberos 無法為範疇決定任何的 KDC。
請確定在 Kerberos 設置檔案 (krb5.conf) 的範疇段落中指定了一個 KDC。
無法重新使用密碼。 |
此主管以前已經使用過您所輸入的密碼。
請選取一個以前並未使用過的密碼,至少不在 KDC 資料庫為每位主管保留的密碼編號當中(由主管政策所強制執行的)。
無法取得轉遞的證書。 |
無法建立證書轉遞功能。
請確定主管有可轉遞的證書。
無法開啟/找不到 Kerberos 設置檔案。 |
無法使用 Kerberos 設置檔案 (krb5.conf)。
請確定 krb5.conf 檔案位於正確的位置,而且有正確的權限(應該可以由 root 寫入並且讓所有人讀取)。
客戶端並不提供所需的核對和 - 連線遭拒。 |
有核對和的辯證無法與客戶端協調。客戶端可能是使用一個並不支援初始化連線支援的舊 Kerberos V5 協定。
請確定客戶端是使用一個支援初始化連線支援的 Kerberos V5 協定。
初次要求許可證時客戶端/伺服器範疇不符。 |
在初次要求許可證時發生客戶端及伺服器的範疇不符。
請確定您正在通訊的伺服器與客戶端位於相同的範疇之內,或者範疇設置無誤。
客戶端或伺服器有一個空密鑰。 |
主管有一個空密鑰。
請使用 kadmin(1M) 的 cpw 指令以將主管修改為擁有一個非空的密鑰。
初始化 kadmin 介面時與伺服器的通訊失敗。 |
為管理伺服器(主 KDC)輸入的主機並未執行 kadmind。
請確定您指定了正確的主 KDC 主機名稱。如果您指定的主機名稱無誤,請確定 kadmind 在您所指定的主 KDC 之上執行。
設置錯誤﹕要求有 -c 的核對和,與允許 Kerberos V4 連線不一致。 |
以核對和辯證與客戶端不協調。客戶端可能是使用一個不支援初始化連線支援的舊 Kerberos V5 協定。
請確定客戶端使用的是一個支援初始化連線支援的 Kerberos V5 協定。
證書快取記憶體檔案權限不正確。 |
您對證書快取記憶體 (/tmp/krb5cc_uid) 沒有正確的讀寫權限。
請確定您對證書快取記憶體具有讀寫權限。
證書快取記憶體的輸出入操作失敗。XXX |
Kerberos 在寫入系統的證書快取記憶體 (/tmp/krb5cc_uid) 時發生問題 。
請確定證書快取記憶體尚未被移除,並且使用 df 指令來確定裝置上有足夠的空間。
解密整合性的檢查失敗。 |
您的許可證可能是無效的。
請確定您的證書仍然有效。請以 kdestroy 來損毀您的許可證,並且以 kinit 來建立新的許可證。
請確定目標主機的密鑰表含有正確的服務密鑰版本。以 kadmin(1M) 來檢視 Kerberos 資料庫的服務主管密鑰版本編號(如﹕host/FQDN_hostname),並且使用目標主機之上的 klist -k 來確定它擁有相同的密鑰版本編號。
超過 des_read 的重試計數。 |
在讀取資料時重覆發生同樣的錯誤。
請檢查系統上其他可能的問題。查看其他 syslog 的訊息以找出可能的線索。
df: 無法 statvfs filesystem﹕引數無效。 |
df指令無法存取目前裝載以生成報告的 Kerberos 化的NFS 檔案系統,因為您已經不再擁有正確的 root 證書。請損毀您的證書,因為裝載的 Kerberos 化檔案系統無法自動卸載檔案系統。
您必須建立新的 root 證書來存取 Kerberos 化的檔案系統。如果您不再需要存取Kerberos 化檔案系統,請卸載檔案系統。
無法啟用加密。再見。 |
無法與伺服器協調加密。
請藉由調用 telnet 指令 toggle encdebug 來開始辯證,並且查看除錯訊息以找出可能的線索。
並未成功協調加密。再見。 |
無法協調加密。
請檢查 KDC 記錄檔中的錯誤訊息。
已達證書快取記憶體的結尾。 |
在讀取證書快取記憶體 (/tmp/krb5cc_uid) 時發生一個錯誤。
請確定證書快取記憶體可供讀取並且包含資料。
無法取得證書快取記憶體。 |
在初始化 kadmin 的過程中,當 kadmin 試圖為 admin 主管取得證書時發生錯誤。
請確定您在執行 kadmin 時所用的是正確的主管及/或密碼。
欄位對此實施而言太長。 |
Kerberos 化的應用程式所送的訊息大小太長。Kerberos 所能處理的最大的訊息大小為 65535 個位元組。此外,Kerberos 所送的協定訊息中的個別欄位也有限制。
請確定您的 Kerberos 化的應用程式傳送的是有效的訊息大小。
GSS-API(或 Kerberos)錯誤。 |
這是一個通用的 GSS-API 或 Kerberos 錯誤訊息,可能是由數種不同的問題所造成的。
請查看 /etc/krb5/kdc.log 檔案以找出當此錯誤發生時所記錄的更為特定的 GSS-API 錯誤訊息。
無法將主機名稱正規化。 |
Kerberos 無法使主機名稱完全符合條件。
請確定主機名稱位於 DNS 中,而且主機名稱至位址以及位址至主機名稱的對映皆一致。
跨範疇的許可證不合法。 |
送出的許可證沒有正確的跨範疇。範疇可能沒有建立正確的互信關係。
請確定您所用的範疇有正確的互信關係。
Kerberos 設置檔案的格式不正確。 |
Kerberos 設置檔案 (krb5.conf) 的項目無效。
請確定 krb5.conf 檔案中所有的關係之後都有一個 "=" 符號及數值,並且確定每個子段落的括弧都成對。
訊息中的核對和類型不正確。 |
訊息包含一個無效的核對和類型。
請檢查 krb5.conf 及 kdc.conf 檔案中指定了何種有效的核對和類型。
網路位址不正確。 |
網路位址不符。轉遞的許可證網路位址與處理許可證的網路位址不同。轉遞許可證時可能會發生這種問題。
請確定網路位置無誤,以 kdestroy 來損毀您的許可證,並且以 kinit 來建立新的許可證。
檔案鎖定模式的旗標無效。 |
發生一個內部的 Kerberos 錯誤。
請報告程式錯誤。
為編碼指定的訊息類型無效。 |
Kerberos 無法識別 Kerberos 化的應用程式所送的訊息類型。
如果您是使用您的網站或廠商所開發的一個 Kerberos 化的應用程式,請確定它可以正確地使用 Kerberos。
字元類別的數目無效。 |
您為主管輸入的密碼並未包含如主管政策所強制的足夠的密碼類別。
請確定您輸入的密碼符合政策所要求的最小密碼類別數。
KADM err﹕記憶體的配置失敗。 |
沒有足夠的記憶體以執行 kadmin。
請釋放足夠的記憶體並且再一次試著執行 kadmin。
KDC 無法完成所要求的選項。 |
KDC 並不允許所要求的選項。問題可能在於要求了遠期或可轉遞的選項,而 KDC 卻不允許。另一個原因可能是您要求更新能賦予許可證的許可證,但是您並沒有一張可更新的許可證。
請決定您是否要求 KDC 不允許的選項,或者您的要求是否超出能力範圍之外。
KDC 政策拒絕要求。 |
KDC 政策並不允許此要求。例如,對 KDC 的要求中並沒有一個 IP 位址,或者要求了轉遞但 KDC 不允許。
請確定您是以正確的選項使用 kinit。如果有必要,請修改與主管有關的政策或是變更主管的屬性以允許要求。您可以使用 kadmin(1M) 來修改政策或主管。
KDC 的回覆出乎意料之外。 |
KDC 的回覆並未包含預期的主管名稱,或者回應中的其他數值不正確。
請確定您正在通訊的 KDC 遵照 RFC1510,您所送出的要求是一個 Kerberos V5 要求,或者 KDC 可供使用。
Kerberos V5 拒絕辯證。 |
辯證無法與伺服器協調。
請調用 telnet 指令 toggle authdebug 來開始辯證除錯,並且查看除錯訊息以找出可能的線索。同時請確定您的證書仍然有效。
找不到密鑰表項目。 |
網路應用程式伺服器的密鑰表中沒有服務主管的項目。
請將正確的服務主管新增至伺服器的密鑰表中,好讓它提供 Kerberos 化的服務。
密鑰表中主管的密鑰版本編號不正確。 |
密鑰表中的主管密鑰版本與 Kerberos 資料庫中的不同。不是服務的密鑰已經變更,就是您可能是使用一個舊的服務許可證。
如果已經變更一個服務的密鑰(例如,藉由使用 kadmin),您必須摘取新的密鑰並將它貯存在執行服務的主機密鑰表中。
或者您也可以使用有一個舊密鑰的舊服務許可證。您必須進行一個 kdestroy 然後再一次進行 kinit。
登入﹕load_modules﹕無法開啟模組 /usr/lib/security/pam_krb5.so.1。 |
不是遺漏 Kerberos PAM 模組,就是它並非有效的可執行二進位。
請確定 Kerberos PAM 模組位於 /usr/lib/security,而且是一個有效的可執行二進位。同時請確定 /etc/pam.conf 包含到 pam_krb5.so.1 的正確路徑。
krb5_get_in_tkt 中偵測到迴圈。 |
Kerberos 數次嘗試取得初始的許可證但都失敗。
請確定至少有一個 KDC 回應辯證要求。
主密鑰與資料庫不符。 |
載入的資料庫傾印並非位於 /var/krb5/.k5.REALM 中的一個包含主密鑰的資料庫所建立。
請確定載入資料庫傾印中的主密鑰與位於 /var/krb5/.k5.REALM 中的主密鑰相符。
找不到相符的證書。 |
找不到要求相符的證書。您要求證書快取記憶體中所沒有的證書。
請以 kdestroy 來損毀您的許可證,並且以 kinit 來建立新的許可證。
訊息順序不對。 |
使用序列保密性傳送的訊息順序不對。傳送的過程中可能遺失某些訊息。
您必須重新將 Kerberos 作業階段初始化。
已修改訊息資料流。 |
計算的核對和與訊息的核對和不符。訊息可能在傳送途中被修改,表明有安全性的疏失。
請確定訊息正確地透過網路傳送。因為此訊息可能表明訊息在傳送的過程中遭到攔截,請使用 kdestroy 來損毀您的許可證,並且將您所使用的 Kerberos 服務初始化。
本節將依照英文字母的順序列出 SEAM 指令、SEAM 常駐程式、PAM 架構、GSS 介面、及 Kerberos 程式庫中較常見的錯誤訊息清單 (N-Z)。
沒有啟用任何辯證系統。所有的連線都會被拒。 |
此版的 rlogind 並不支援任何辯證機制。
請確定以 -k 選項來調用 rlogind。事實上,這應該是 inetd.conf 檔案中所指定的預設值。
找不到證書快取記憶體檔案。 |
Kerberos 找不到證書快取記憶體 (/tmp/krb5cc_uid)。
請確定存在證書檔案而且可供讀取。如果不是的話,請再一次試著執行 kinit。
操作需要 "privilege" 的許可權限。 |
所用的 admin主管並沒有在 kadm5.acl 檔案中設置正確的許可。
請使用一個擁有正確許可的主管,或者修改 kadm5.acl 檔案,好讓所用的主管擁有正確的許可。通常有 “/admin” 作為其名稱一部份的主管都有正確的許可權限。
PAM-KRB5: Kerberos V5 辯證失敗﹕密碼不正確。 |
您的 UNIX 密碼與 Kerberos 密碼不同。大多數如 login 等非 Kerberos 化的指令都透過 PAM 設定以藉由使用您為您的 UNIX 密碼所指定的相同密碼來向 Kerberos 自動辯證。如果您的密碼不同,Kerberos 辯證就會失敗。
您必須在被提示時輸入您的 Kerberos 密碼。
密碼在密碼字典中。 |
您所輸入的密碼位於一個使用中的密碼字典。它並非一個理想的密碼。
請選擇一個含有各種密碼類別的密碼。
重放快取記憶體內碼中的權限遭拒。 |
無法開啟系統的重放快取記憶體。伺服器一開始可能是使用一個與您目前的使用者識別碼不同的使用者識別碼來執行。
請確定重放快取記憶體有適當的權限。重放快取記憶體貯存在執行 Kerberos 化伺服器應用程式 (/usr/tmp/rc_service_name) 的主機之上。您也可以選擇不變更目前的重放快取記憶體上的權限,改而在以不同的使用者識別碼執行 Kerberos 化伺服器之前,先將重放快取記憶體移除。
協定版本不符。 |
一個 Kerberos V4 要求可能被送給 KDC。SEAM 只支援 Kerberos V5 協定。
請確定您的應用程式使用的是 Kerberos V5 協定。
要求為一個重放。 |
要求已經被送至此伺服器而且處理完畢。許可證可能被偷,而另外有人正試著重新使用此許可證。
請稍候幾分鐘之後再重新核發要求。
所要求的主管及許可證不符。 |
您所連線的服務主管與您的服務許可證不符。
請確定 DNS 可以正常運作。如果您使用的是另一個廠商的軟體,請確定它使用的主管名稱無誤。
所要求的協定版本不受支援。 |
很可能將一個 Kerberos V4 要求送給 KDC。SEAM 只支援 Kerberos V5 協定。
請確定您的應用程式使用的是 Kerberos V5 協定。
初始化 kadmin 介面時遺漏 krb5.conf 中所需的參數。 |
kr5.conf 檔案中有遺漏的參數(如 admin_server 參數)。
請決定遺漏的參數為何並將它新增至 krb5.conf 中。
伺服器拒絕與加密協調。再見。 |
加密無法與伺服器協調。
請調用 telnet 指令 toggle encdebug 來開始辯證除錯,並且查看除錯訊息以找出可能的線索。
伺服器拒絕辯證(在 sendauth 交換的過程中)。 |
您試著通訊的伺服器拒絕了辯證。在進行 Kerberos 資料庫傳播時最可能發生此錯誤。某些常見的原因可能在於 kpropd.acl 檔案、DNS、或密鑰表的問題。
如果您在執行 kprop 以外的應用程式時遇到此錯誤,請檢查伺服器的密鑰表是否正確。
許可證不是給我們用的, 或者是許可證/辯證器不符。 |
許可證和辯證器不符。要求的主管名稱可能沒有相符的服務主管名稱,因為許可證是以主管的 FQDN 名稱傳送的,而服務則預期一個非 FQDN 或反之亦然。
請確定您所用的服務主管無誤。
許可證已經過期。 |
您的許可證時間已經過期。
請以 kdestroy 來損毀您的許可證並且利用 kinit 來建立新的許可證。
許可證不能設定為遠期。 |
主管不允許其許可證為遠期的狀態。
請以 kadmin(1M) 來修改主管以允許遠期。
許可證尚未開始生效。 |
遠期的許可證尚未開始生效。
請建立有正確日期的新許可證,或是等到目前的許可證生效為止。
偵測到被截斷的輸入檔案。 |
操作時使用的資料庫傾印檔案並非一個完整的傾印檔。
請再一次建立傾印檔案,或是使用一個不同資料庫的傾印檔。
無法與 Kerberos V5 連線並提供加密服務,或者無法以普通的 rlogin 來與 Kerberos V5 連線。 |
無法在伺服器之上以正確的服務(rsh 及 rcp 的kshell,rlogin 的eklogin 或 klogin)來建立 Kerberos 化的作業階段。可能是因為證書無效。
請確定您的證書仍然有效。以 kdestroy 損毀您的許可證,然後利用 kinit 來建立新的許可證。
請確定目標主機有一個正確服務密鑰版本的密鑰表。使用 kadmin(1M) 來檢視 Kerberos 資料庫中的服務主管密鑰版本編號(如﹕host/FQDN_hostname),並且使用目標主機之上的 klist -k 來請確定它擁有相同的密鑰版本編號。
請確定目標主機之上/etc/inetd.conf 中的服務中存在輸入項目(klogin、eklogin、及 kshell)。
無法安全地辯證使用者 ... 結束。 |
辯證無法與伺服器協調。
請調用 telnet 指令 toggle authdebug 以開始辯證除錯功能,並且查看除錯訊息以找出可能的線索。同時請確定您的證書仍然有效。
要求中的主管錯誤。 |
許可證中有一個無效的主管名稱。可能是 DNS 或 FQDN 的問題。
請確定服務的主管與許可證中的主管相符。
您是使用一個沒有核對和支援的舊版 Kerberos5 客戶端,只會授權較新的客戶端。 |
有核對和的辯證無法與客戶端協調。客戶端可能是使用一個舊版的 Kerberos V5 協定,並不支援初始化連線的支援功能。
請確定客戶端是使用一個支援初始化連線支援的 Kerberos V5 協定。
本節提供有關 SEAM 軟體的疑難排解資訊。
如果 krb5.conf 檔案的格式不正確,telnet 指令就會失敗。不過 dtlogin and login 指令仍然可以成功,即使指定指令必須要有 krb5.conf 檔案。如果發生這種情形,就會顯示下列的錯誤訊息﹕
初始化 krb5 時發生錯誤﹕Kerberos 設置的格式不正確 |
如果 krb5.conf 檔案的格式有問題,您可能會產生安全上的顧慮。您必須在允許使用 SEAM 功能之前先修復此問題。
如果 Kerberos 資料庫的傳播失敗,請嘗試 /usr/krb5/bin/rlogin -x 從屬 KDC 及主 KDC 之間的傳播,反之亦然。
如果將 KDC 設定為限制存取,便會停用 rlogin 而無法解決此問題。要在 KDC 上啟用 rlogin,您必須取消 /etc/inetd.conf 檔案中 eklogin 項目的註解,然後重新愛戴 inetd,如下所示﹕
# ps -eaf | grep inetd 顯示 inetd # kill -1 的處理識別碼 pid_of_inetd |
在您解決完疑難的問題之後,您必須將 inetd.conf 檔案變更為其原本的狀態,然後再重新啟動 inetd。
如果 rlogin 無法正常運作,問題可能在於 KDC 之上的密鑰表。如果 rlogin 無法正常運作,問題則不在密鑰表或名稱服務之上,因為 rlogin 及傳播軟體使用相同的 host/host_name 主管。在這種情況下,請確定 kpropd.acl 檔案無誤。
如果 Kerberos 化的 NFS 檔案系統的裝載失敗,請確定 NFS 伺服器中存在 /var/tmp/rc_nfs 檔案。如果 root 並未擁有它的話,請將它移除然後再一次試著裝載。
如果您在存取一個 Kerberos 化的 NFS 檔案系統時發生問題,請確定您系統及 NFS 伺服器上 inetd.conf 檔案中的 gssd 中含有一個項目。
如果您試著存取一個 Kerberos 化的 NFS 檔案系統時看到引數無效或是目錄不正確的錯誤訊息,問題可能在於您在裝載 NFS 檔案系統時所使用的 DNS 名稱不完全符合條件。所裝載的主機與伺服器密鑰表中服務主管部份的主機名稱不同。
如果您的伺服器有多個以太網介面,而且您設定 DNS 使用一個“每個介面名稱”的系統而非“每個主機多位址記錄”系統的話,就可能會發生這種問題。在 SEAM 中,您必須設定每個主機多位址記錄為 follows [ Ken Hornstein, “Kerberos 常見問答集錦,” [http://www.nrl.navy.mil/CCS/people/kenh/kerberos-faq.html],1998 年 12 月 11 日存取。 ] :
my.host.name. A 1.2.3.4 A 1.2.4.4 A 1.2.5.4 my-en0.host.name. A 1.2.3.4 my-en1.host.name. A 1.2.4.4 my-en2.host.name. A 1.2.5.4 4.3.2.1 PTR my.host.name. 4.4.2.1 PTR my.host.name. 4.5.2.1 PTR my.host.name.
在此範例中,設定程式允許一個至不同介面的參考,並且允許在伺服器密鑰表中只有單一服務主管而非三個服務主管。
如果在您試著在系統上成為超級使用者時發生辯證失敗,而您已經將 root 主管新增至您主機的密鑰表中,有兩種可能的問題要考慮。首先請確定密鑰表中的 root 主管有一個完全符合條件的名稱為其實例。如果沒有的話,請檢查 /etc/resolv.conf 檔案以請確定系統是正確地設定為一個 DNS 客戶端。