ฉันกำลังพยายามตั้งค่า NFSv4 ด้วย Kerberos เซิร์ฟเวอร์เป็น FreeBSD 13.0-RELEASE และไคลเอนต์คือ Ubuntu 20 ฉันมีส่วน Kerberos ทำงานอยู่และฉันสามารถรับตั๋วโดยอัตโนมัติเมื่อเข้าสู่ระบบสำหรับผู้ใช้ของฉัน และ SSH เข้าสู่เซิร์ฟเวอร์ในขณะที่ตรวจสอบความถูกต้องผ่าน Kerberos ดังนั้นฉันจึงมั่นใจว่าการตั้งค่า Kerberos ของฉันถูกต้องแล้ว
แต่เมื่อฉันพยายามเมานต์การแชร์ NFSv4 ฉันได้รับข้อผิดพลาดสามข้อต่อไปนี้พร้อมกัน:
# เมานต์ -vvvv -t nfs4 -o วินาที=krb5 เซิร์ฟเวอร์:/ /mnt
mount.nfs4: หมดเวลากำหนดไว้สำหรับวันอังคารที่ 2 พฤศจิกายน 00:54:36 น. 2021
mount.nfs4: ลองใช้ตัวเลือกแบบข้อความ 'sec=krb5,vers=4.2,addr=10.42.42.2,clientaddr=10.42.42.119'
mount.nfs4: mount(2): อาร์กิวเมนต์ไม่ถูกต้อง
mount.nfs4: ลองใช้ตัวเลือกแบบข้อความ 'sec=krb5,vers=4.1,addr=10.42.42.2,clientaddr=10.42.42.119'
mount.nfs4: mount(2): ปฏิเสธการอนุญาต
mount.nfs4: ลองใช้ตัวเลือกแบบข้อความ 'sec=krb5,vers=4.1,addr=fe80::215:17ff:fe56:d754,clientaddr=::'
mount.nfs4: mount(2): ข้อผิดพลาดอินพุต/เอาต์พุต
mount.nfs4: การเมานต์การเรียกระบบล้มเหลว
ข้อผิดพลาดแรกคือ "อาร์กิวเมนต์ไม่ถูกต้อง" สุดท้ายคือ "ข้อผิดพลาดอินพุต/เอาต์พุต" ไม่แน่ใจว่าจะแก้ไขข้อบกพร่องเหล่านั้นได้อย่างไร
ข้อผิดพลาด "การอนุญาตถูกปฏิเสธ" ฉันไม่แน่ใจว่าเป็นเพราะ Kerberos หรืออย่างอื่น
showmount -e servidor
แสดงว่ามีการส่งออกอยู่ (อย่างน้อยสำหรับ NFSv3) นี่คือไฟล์ส่งออกของฉัน:
/tera/share -alldirs
/usr/บ้าน -alldirs
V4: /tera/shared -sec=krb5,krb5i
V4: /usr/home -sec=krb5,krb5i
ฉันเข้าใจว่าสิ่งนี้ควรส่งออกทุกอย่างไปยัง IP ใดๆ บน NFSv3 และไปยังไคลเอ็นต์ที่ตรวจสอบสิทธิ์ด้วย Kerberos สำหรับ NFSv4
ทั้งสองเครื่องมีคีย์ nfs/hostname@REALM ในแท็บคีย์ (ลองใช้กับ nfs/hostname.fqdn@REALM และ host/hostname@REALM เป็นต้น)