Làm cách nào để thiết lập người dùng sftp để đăng nhập bằng mật khẩu đến máy chủ EC2 ubfox?


14

Tôi có một máy chủ Ubuntu đang chạy trên một phiên bản EC2. Để đăng nhập vào máy chủ đó, tôi sử dụng tệp chứng chỉ mà không cần mật khẩu.

Tôi đã cài đặt và định cấu hình vsftpd và tạo một người dùng (hãy gọi anh ta là "người thử nghiệm") mà tôi đã đặt thiết bị đầu cuối / bin / false ssh để nó chỉ có thể kết nối qua sftp và tải lên / truy cập các tệp trong nhà của anh ta danh mục.

Tuy nhiên - khi tôi cố gắng kết nối với máy chủ từ máy tính của mình, tôi đang chạy

sftp testuser@my-ec2-server

tôi có

Quyền bị từ chối (khóa công khai).
Kêt nôi bị đong

tin nhắn để tôi không thể đăng nhập.

Làm cách nào tôi chỉ có thể xóa yêu cầu chứng chỉ cho người dùng này (nghĩa là người dùng "ubfox" vẫn sẽ phải sử dụng tệp chứng chỉ để đăng nhập qua ssh), vì vậy khách hàng sftp bình thường sẽ có thể kết nối bằng tên người dùng và mật khẩu?

Cảm ơn bạn.

PS Sử dụng Ubuntu Server 10.10 AMI chính thức từ canonical, 64 bit trên một ví dụ vi mô.

Câu trả lời:


10

Để thực hiện những gì bạn muốn, bạn cần làm hai việc khác nhau

  1. Thay đổi cấu hình sshd để chấp nhận mật khẩu

Tôi sẽ nói trước hết rằng đó là một ý tưởng tồi để làm điều này, tôi thà tạo chứng chỉ cho người dùng của bạn hơn là kích hoạt mật khẩu, tuy nhiên nếu bạn muốn làm như vậy chỉ cần chỉnh sửa /etc/ssh/sshd_configvà thay đổi hoặc bỏ ghi chú để nó hiển thị PasswordAuthentication yes. Khi đã xong, khởi động lại sshdservice ssh restart

  1. Cho phép người dùng chỉ sử dụng FTP và không có shell

Để hoàn thành việc bạn cần cài đặt rsh (shell đã được giới hạn) và thay đổi shell người dùng thành nó chsh username


Tôi chỉ muốn người dùng cụ thể này (người kiểm tra), người sẽ chỉ có quyền truy cập sftp, sử dụng mật khẩu thay vì chứng chỉ. Một phần của việc không cho phép người dùng đó truy cập thông qua ssh, tôi đã thực hiện bằng cách định nghĩa loại bash là / bin / false
Doron

1
Doron, bạn sẽ không thể chỉ cho phép một người dùng thông qua passwd, bạn có thể cho phép mật khẩu auth cho mọi người hoặc không cho ai. Cũng /bin/falsesẽ không cho phép kết nối sftp (bất kỳ kết nối ssh nào cũng cần vỏ hợp lệ, đó là nơi rsh thực hiện thủ thuật)
lynxman

1
Điều này không hoạt động với tôi trên Ubuntu EC2, không chắc bước bổ sung mà tôi thiếu là gì, cổng 22 đã mở
Doug Molineux

Xem serverfault.com/questions/154957/ cấp để thiết lập chỉ người dùng sftp bằng mật khẩu ...
Raman

-1

Dưới đây là hướng dẫn từng bước để cho phép:

  1. Truy cập SFTP vào / home / bob / tải lên cho người dùng bob
  2. Khóa bob ra khỏi SSH
  3. Sử dụng tên người dùng / mật khẩu thay vì khóa:

Đầu tiên, chỉnh sửa tệp / etc / ssh / sshd_config:

sudo nano /etc/ssh/sshd

Cuộn xuống và sửa đổi:

PasswordAuthentication yes

và thêm cái này ở phía dưới:

Match Group sftpusers
ChrootDirectory %h
ForceCommand internal-sftp
AllowTcpForwarding no  

Nhấn Ctrl-X để thoát và lưu.

Bây giờ thêm người dùng:

sudo useradd bob
sudo passwd bob

Bây giờ thêm các nhóm và vô hiệu hóa ssh:

sudo groupadd sftpusers
sudo usermod  -g sftpusers bob
sudo usermod -s /usr/bin/rssh bob
sudo usermod -d /home/bob bob

Bây giờ đặt quyền:

sudo chown root:root /home/bob/
sudo chmod 755 /home/bob/
sudo mkdir /home/bob/uploads
sudo chown bob /home/bob/uploads

sudo service sshd restart

Tất cả điều này là trong khi đăng nhập với tư cách người dùng root (người dùng ec2 trên Amazon Linux AMIs)


3
Không cần phải tụt quần chỉ để cho phép một người dùng sử dụng mật khẩu auth.
EEAA
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.