Ssh

設置 sftp chroot 監獄時遇到問題

  • February 19, 2019

我正在關注 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,而不是關於chrootjails 和的教程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.

引用自:https://unix.stackexchange.com/questions/493565