修改.ssh/authorized_keys: Operation not permitted


在設置免密鑰登陸時

ssh-copy-id -i ~/.ssh/id_rsa.pub yjy01
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_rsa.pub"
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
root@yjy01's password: 
bash: warning: setlocale: LC_ALL: cannot change locale (zh_CN.utf8)
sh: 1: cannot create .ssh/authorized_keys: Operation not permitted

出現Operation not permitted

 

解決:

首先先了解下chattr,chattr命令的作用很大,其中一些功能是由Linux內核版本來支持的,如果Linux內核版本低於2.2,那么許多 功能不能實現。同樣-D檢查壓縮文件中的錯誤的功能,需要2.5.19以上內核才能支持。另外,通過chattr命令 修改屬性能夠提高系統的安全 性,但是它並不適合所有的目錄。chattr命令不能保護/、/dev、/tmp、/var 目錄。 lsattr比較簡單,只是顯示文件的屬性

[root]#lsattr
  ----ia---j--- ./lsattr_test

這兩個命令是用來改變文件、目錄屬性的,和chmod,ls這些命令相比,chmod只是改變文件的讀寫、執行權限,
更底層的屬性控制是由chattr來改變的。
chattr命令的用法:chattr [ -RV ] [ -v version ] [ mode ] files...
最關鍵的是在[mode]部分,[mode]部分是由+-=和[ASacDdIijsTtu]這些字符組合的,這部分是用來控制文件的
屬性。
   + :在原有參數設定基礎上,追加參數。
  - :在原有參數設定基礎上,移除參數。

  = :更新為指定參數設定。

  A:文件或目錄的 atime (access time)不可被修改(modified), 可以有效預防例如手提電腦磁盤I/O錯誤的發生。

  S:硬盤I/O同步選項,功能類似sync。

  a:即append,設定該參數后,只能向文件中添加數據,而不能刪除,多用於服務器日志文 件安全,只有root才能設定這個屬性。

  c:即compresse,設定文件是否經壓縮后再存儲。讀取時需要經過自動解壓操作。

  d:即no dump,設定文件不能成為dump程序的備份目標。

  i:設定文件不能被刪除、改名、設定鏈接關系,同時不能寫入或新增內容。i參數對於文件 系統的安全設置有很大幫助。

   j:即journal,設定此參數使得當通過mount參數:data=ordered 或者 data=writeback 掛 載的文件系統,文件在寫入時會先被記錄(在journal中)。如果filesystem被設定參數為 data=journal,則該參數自動失效。

  s:保密性地刪除文件或目錄,即硬盤空間被全部收回。

  u:與s相反,當設定為u時,數據內容其實還存在磁盤中,可以用於undeletion.

各參數選項中常用到的是a和i。a選項強制只可添加不可刪除,多用於日志系統的安全設定。而i是更為嚴格的安全設定,只有superuser (root) 或具有CAP_LINUX_IMMUTABLE處理能力(標識)的進程能夠施加該選項。

 

lsattr authorized_keys
結果:
----ia-------e-- authorized_keys
chattr -a authorized_keys
chattr -i authorized_keys

再重新拷貝密鑰即可

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM