1. 程式人生 > >ssh私鑰登陸提示Server refused our key問的解決辦法

ssh私鑰登陸提示Server refused our key問的解決辦法

問題現象:

在開啟Selinux的情況下,使用無密碼認證的私鑰登陸登陸時,會出現如下錯誤提示:

Server refused our key

在/var/log/audit/audit.log日誌檔案下,可以看到如下提示:

type=AVC msg=audit(1371453190.650:21382): avc: denied { read } for pid=2048 comm="sshd" name="authorized_keys" dev=dm-2 ino=393229 scontext=unconfined_u:system_r:sshd_t:s0-s0:c0.c1023 tcontext=unconfined_u:object_r:home_root_t:s0 tclass=file

問題原因:

生成的~/.ssh/authorized_keys 檔案沒有selinux上下文屬性,導致無法通過Selinux認證,檢視該檔案屬性如下:

[barlowliu@web1 ~]$ ll -Z .ssh/authorized_keys
-rwxr--r--. barlowliu barlowliu ? .ssh/authorized_keys

很多網友在遇到此問題時,都是採用的關閉selinux方式解決問題,但鑑於selinux帶來的安全性加強,在一般情況下,不建議關閉selinux。

辦法解決:

# restorecon -R -v /home

該命令的作用了恢復/home 目錄下所有檔案的預設selinux安全上下文屬性。

再次檢視~/.ssh/authorized_keys檔案的selinux安全上下文屬性,發現已經改變:

[barlowliu@web1 ~]$ ll -Z ~/.ssh/authorized_keys
-rwxr--r--. barlowliu barlowliu unconfined_u:object_r:user_home_t:s0 /home/barlowliu/.ssh/authorized_keys