Ssh
設置 sftp chroot 監獄時遇到問題
我正在關注 ArchWiki 上的SFTP chroot wiki,發現了一個巨大的障礙:我無法讓我的
sftponly
使用者獲得授權。
tail -2 /etc/passwd
(我的 2 個使用者)的輸出:chris:x:1001:1002::/home/jail:/usr/bin/nologin rick:x:1002:1002::/home/jail:/usr/bin/nologin
groups chris
和的輸出groups rick
:sftponly
目錄:
$ ls -l /home total 24 drwxr-xr-x 3 root root 4096 Jan 9 16:12 jail/ $ ls -l /home/jail total 4 drwxrwxr-x 3 rick sftponly 4096 Jan 9 16:12 dropbox/
注意:該
dropbox/
目錄歸其所有的唯一原因rick
是因為我正在嘗試更改 chroot jail 目錄中文件的所有權,因為這是我在廣泛的Google搜尋中讀到的內容。我希望兩者都chris
能夠rick
編輯相同的文件。當我達到我什至可以登錄的程度時,我將調查 facl 權限。中的相關部分
/etc/ssh/sshd_config
Subsystem sftp /usr/lib/ssh/sftp-server Match Group sftponly ChrootDirectory %h ForceCommand internal-sftp AllowTcpForwarding no X11Forwarding no PasswordAuthentication yes
sftp rick@localhost
當我嘗試通過登錄並輸入密碼時,從日誌中:Jan 09 16:44:17 dell-dropbox sshd[688]: Failed password for rick from ::1 port 57410 ssh2 Jan 09 16:44:23 dell-dropbox sshd[688]: Failed password for rick from ::1 port 57410 ssh2 Jan 09 16:44:28 dell-dropbox sshd[688]: Failed password for rick from ::1 port 57410 ssh2 Jan 09 16:44:29 dell-dropbox sshd[688]: Connection closed by authenticating user rick ::1 port 57410 [preauth]
注意:他們都設置了密碼。我輸入的密碼正確。我可以像我自己一樣 sftp 沒有任何問題。
我到底錯過了什麼?
警告:我不是安全專家。我無法確保使用此方法無法通過 ssh 登錄,但從我的測試看來,您不能。
關鍵問題似乎是
/bin/nologin
,事實證明一開始就沒有必要。當 sshd 配置了上述設置,並且您的使用者被設置為將他們的主目錄設置為這樣的監獄時,他們無論如何都無法使用 ssh。
chroot
我在jails with上找到的每個教程ssh
,而不是關於chroot
jails 和的教程sftp
,都討論了設置系統文件夾的必要性,本質上是創建一個系統中的系統。沒有它們,似乎無法通過 ssh而不是通過 sftp 登錄。所以,按照我上面的指示,但不要將使用者的 shell 設置為
/bin/nologin
. 據我所知,這是針對守護程序使用者的。此外,使用 ssh-keys 配置所有這些非常容易。只需在共享主目錄中擁有一個根擁有的
.ssh/authorized_keys
文件就可以了。使用 ssh-keys 的結果:
~ » ssh chriss@localhost Enter passphrase for key '/home/malan/.ssh/id_rsa': This service allows sftp connections only. Connection to localhost closed.