Ssh

ssh 多個使用者到一個家庭

  • June 5, 2010

我想允許一些受信任的使用者將文件 scp 到我的伺服器(給特定使用者),但我不想給這些使用者一個家,也不想 ssh 登錄。

我在理解我必須創建的使用者/組的正確設置以允許這種情況發生時遇到問題。

我舉個例子;

有:

  1. MyUser@MyServer
  2. MyUser屬於組MyGroup
  3. MyUser 的家可以說,/home/MyUser
  4. SFTPGuy1@OtherBox1
  5. SFTPGuy2@OtherBox2

他們給我他們id_dsa.pub的,我把它添加到我的authorized_keys

我想,我會在我的伺服器上做類似的事情

useradd -d /home/MyUser -s /bin/false SFTPGuy1(另一個也一樣..)

最後,useradd -G MyGroup SFTPGuy1(再一次,對於另一個人)

我希望 SFTPGuys 能夠sftp -o IdentityFile=id_dsa MyServer並被帶到 MyUser 的家中……

好吧,事實並非如此…… SFTP 只是不斷要求我輸入密碼。

有人能指出我錯過了什麼嗎?

謝謝一米,

F。

[編輯: StackOverflow 中的Messa詢問我是否授權密鑰文件對其他使用者(MyGroup 的成員)可讀。這是一個有趣的觀點,這是我的回答:

好吧,它不是(它是 700),但後來我將 .ssh 目錄和 auth 文件的權限更改為 750,但仍然沒有效果。值得一提的是,我的主目錄 ( /home/MyUser) 也可供該組讀取;大多數 dirs 是 750,他們放置文件的特定文件夾是 770。

不過,關於身份驗證文件,我認為身份驗證將由本地使用者執行MyServer,不是嗎?如果是這樣,我不明白其他使用者需要閱讀它……好吧……只是想知道。]

在你嘗試這個之前,請一直閱讀到底部。

您可以通過創建 2 個使用者將他們放在同一個組中並為他們提供相同的主目錄來做您想做的事情。然後在共享首頁中創建 ~/.ssh/authorized_keys 文件,其中包含密鑰。

這些帳戶必須有一個外殼,因此可以使用它來鎖定它們,usermod -L LOGIN這將阻止互動式登錄。

~/.ssh 目錄的權限需要是 g:rx 並且 ~/.ssh/authorized_keys 需要是 g:r–

chmod g+rx ~/.ssh
chmod g+r ~/.ssh/authorized_keys

然後這會導致 sshd 痛苦,因為它期望目錄最多為 g:r– 文件為 g:— 您會收到錯誤消息

Authentication refused: bad ownership or modes for file /home/test/.ssh/authorized_keys

為了使這個方案起作用,你現在必須通過編輯 和設置預設值來打破 sshd 的內置檢查。重新啟動 sshd 以使更改已知。/etc/sshd_config``StrictModes no``StrictModes yes

它應該可以按您的意願工作。不幸的是,您已經取消了 sshd 的安全性,並且可能會在以後進行更改,從而使您的系統完全打開。

要更安全地執行此操作,請不要進行上述任何更改

在同一組中創建 2 個使用者帳戶並設置他們的 ~/.ssh/authorised_keys 從每個主目錄創建一個連結到您希望他們放置內容的位置。

ln -s -n /path/to/stuff content

鎖定主目錄的權限,以防止使用者寫入。

阻止帳戶以互動方式登錄

usermod -L LOGIN

更改 /path/to/stuff 的權限以允許組訪問。

引用自:https://serverfault.com/questions/148125