ssh登入後,ulimit的值無法修改的問題

2021-08-17 16:42:26 字數 1044 閱讀 4330

最近在安裝elk進行日誌的收集和全文檢索服務,發現不使用127.0.0.1的ip時,需要設定linux的open file的數值需要大於等於65536,然後根據提示修改了/etc/security/limits.conf的設定後,關閉ssh後,重新登入,資料沒有變化。但發現通過kvm直接登入到linux上後,對應的數值有變化,這說明是sshd的服務的原因。繼續查詢相關的sshd的資料,終於找到原因。解釋如下:

這個問題因該歸結於ssh登入採取的方式。 當乙個使用者通過ssh登入, ssh守護程序會建立乙個新的程序去處理這個連線。 這樣的話, 這個程序的上下文就會被這個使用者使用。 因為普通使用者無法增加他們的ulimit限制。 所以即使在檔案/etc/security/limits.conf中有較高的數值也不能被啟用生效。 這是因為呼叫的程式,如sshd。 限制了修改屬性的許可權。(引用其他網友的解釋原文)

這個問題目前有兩個解決方法。第一步需要對sshd伺服器進行設定修改。另一步是使用者每一次登陸時都需要執行命令。

1. 修改ssh守護程序的配置檔案/etc/ssh/sshd_config,關閉特權隔離。

(1)  修改引數

useprivilegeseparation 為no;

(2) 修改引數 pamauthenticationviakbdint 為yes;

(3) 重啟sshd服務:

service sshd restart;

注意: 關閉這些選項會帶來一些安全風險。但那也只是在ssh守護程序的漏洞被發現並且被利用的情況下才會出現。

關閉之後就意味著sshd不會建立非特權子程序去處理進站連線。如果漏洞存在而且被利用,則有人可以控制sshd程序,

而這個程序是以root身份執行 的。到目前還沒有已知的弱點,如果你經常使用up2date公升級你的系統的話,

那麼任何漏洞都會在發現之後被迅速的修正。

2.第二種方式,需要每次手工進行使用者切換:

(1)首先su - root 切換至root使用者;

(2)然後再su - ssh登入的使用者;

通過上面2步的操作也可以將ulimit的數值進行了修改;但每次做這樣的操作,非常的麻煩;

ssh無密碼登入

若想登入對方主機,而不需要輸入密碼,操作如下 首先在自己主機上執行 ssh keygen t rsa 三次回車 在 ssh生成公私鑰 id rsa.pub id rsa 將id rsa.pub拷貝到對方的 ssh中 記得重新命名,如my.pub 在對方的.ssh中新建乙個authosized key...

ssh 無密碼登入

今天在配置ssh登入的時候,遇到了一點問題 a.首先我建立了乙個使用者 useradd g hadoop m s bin bash hadoop b.進入hadoop主目錄,生成公鑰私鑰,但是發現沒有.ssh目錄,就手動生成.ssh目錄。c.進入 ssh 目錄下 ssh keygen t rsa,生...

SSH無密碼登入

a為本地主機 即用於控制其他主機的機器 b為遠端主機 即被控制的機器server 假如ip為172.24.253.2 a和b的系統都是linux 在a上的命令 ssh keygen t rsa 連續三次回車,即在本地生成了公鑰和私鑰,不設定密碼 ssh root 172.24.253.2 mkdir...