2012-10-28 202 views
8

上週我使用RPC,可以運行我的RPC服務器程序。然而,今天我試圖再次啓動它,我得到這個錯誤:RPC身份驗證錯誤

Cannot register service: RPC: Authentication error; why = Client credential too weak unable to register (X_PROG, X_VERS, udp)

有人可以告訴我,這個錯誤的原因可以是什麼?

rpcinfo將帶給我這樣的:

program version netid  address    service owner 
    100000 4 tcp6  ::.0.111    portmapper superuser 
    100000 3 tcp6  ::.0.111    portmapper superuser 
    100000 4 udp6  ::.0.111    portmapper superuser 
    100000 3 udp6  ::.0.111    portmapper superuser 
    100000 4 tcp  0.0.0.0.0.111   portmapper superuser 
    100000 3 tcp  0.0.0.0.0.111   portmapper superuser 
    100000 2 tcp  0.0.0.0.0.111   portmapper superuser 
    100000 4 udp  0.0.0.0.0.111   portmapper superuser 
    100000 3 udp  0.0.0.0.0.111   portmapper superuser 
    100000 2 udp  0.0.0.0.0.111   portmapper superuser 
    100000 4 local  /run/rpcbind.sock  portmapper superuser 
    100000 3 local  /run/rpcbind.sock  portmapper superuser 

奇怪的是,我還沒有使用這臺電腦在過去的一週甚至已。 是否有任何應該運行的服務?

希望你能幫助我。 Grtz斯特凡

回答

13

這個錯誤被鏈接到的rpcbind,所以你應該停止這樣的服務端口映射:

sudo -i service portmap stop 

然後

sudo -i rpcbind -i -w 

在年底啓動服務端口映射:

sudo -i service portmap start 
+1

可能值得一提的是我是「不安全」模式,因此允許任何主機向註冊程序製作RPC。 (從手冊:「通常rpcbind只接受來自回送接口的這些請求,出於安全原因,這種改變對於使用rpc庫的早期版本編譯的程序是必需的,並且不要使用回送接口來發出這些請求。」) – eregon

3

在Ubuntu12.04上進行更改永久保存 (與-i運行RPCBIND的假設安全隱患是不相關的):

echo 'OPTIONS="-w -i"' | sudo tee /etc/default/rpcbind 
sudo service portmap restart 
0

這裏提出的解決方案中沒有到目前爲止爲我工作在Debian擠壓到喘息升級。

在我的情況下,我唯一要做的就是將/etc/hosts.allow中所有出現的「portmapper」(或「portmap」,不再確定)替換爲「rpcbind」。就這些。 (否則ypbind無法通過本地主機連接到rpcbind。)

2

我意識到這是一個較老的線程,但Google發現它位於前三名的結果之中,人們仍然在發現nfs服務錯誤。即使是紅帽的RHN的解決方案也不起作用。

截至2013年12月,在RHEL 6.4(x64)上,截至2013年11月,唯一的解決方案是更改tcp_wrapper配置文件的權限。因爲我們已經很好地保護了這個盒子,所以我們對/etc/hosts.allow和/etc/hosts.deny擁有640的權限,這兩個權限都由root:root擁有。我們確實嘗試了這些文件,不同的組所有權在nfs啓動時並沒有糾正這個問題。

一旦我們將燙髮設置回「開箱即用」(644),nfs(rquotad)服務就會按預期啓動。或者,如果我們完全移除hosts.allow/deny。

真是一個痛苦,要弄清楚。如果我早點觀察,selinux日誌可能會有所幫助。

現在,如果我們已經離開selinux執行模式,這可能不是問題。我仍然必須測試這個理論。

祝你好運。

0

如果使用iptables並且阻止本地主機的UDP連接,也會發生這種情況。今天進入這個。停止iptables,連接開始工作。

你需要弄清楚破壞它的規則。

0

我認爲這是值得一提的是,如果你看到這樣的錯誤:

0-rpc-service: Could not register with portmap 

可以涉及到的hosts.allow和hosts.deny文件設置和缺乏hosts.allow文件的本地主機的權限。

我在使用GlusterFS設置NFS時遇到過這種問題。

在我/etc/hosts.allow文件中我已經加入:

ALL: 127.0.0.1 : ALLOW 

和問題,註冊服務,端口映射走了,一切工作。

注:與GlusterFS記得重啓glusterd服務

/etc/init.d/glusterd restart 
0

我在rhel7收到一個錯誤,像這樣:

ypserv: Cannot register service: RPC: Authentication error; why = Client credential too weak 

開始的ypbind時。我嘗試了一切,包括上面的'-i'rpcbind。最後XTaran提到修改/etc/hosts。允許添加此行:

rpcbind: 127.0.0.1 

爲我工作。

0

又一解決方案:CentOS的7.3版

除的rpcbind,我也只好讓mountd的/etc/hosts.allow中:

rpcbind : ALL : allow 
mountd : ALL : allow 

這終於讓我不僅執行rpcinfo,但是也可以執行showmount和mount。