Bir sftp kullanıcısını bir EC2 ubuntu sunucusuna parola ile oturum açacak şekilde nasıl ayarlarım?


14

EC2 örneğinde çalışan bir Ubuntu Sunucum var. Bu sunucuda oturum açmak için parolasız bir sertifika dosyası kullanıyorum.

Ben vsftpd yükledim ve yapılandırdım ve bir kullanıcı (onu "testuser" diyelim ki) onun / s / false ssh terminali ayarladığım sadece böylece sftp üzerinden bağlanıp evine dosya yükleme / erişim dosyaları dizin.

Ancak - sunucudan bilgisayarımdan bağlanmaya çalıştığımda,

sftp testuser@my-ec2-server

alırım

İzin reddedildi (publickey).
Bağlantı kapandı

giriş yapamıyorum.

Yalnızca bu kullanıcı için sertifika gereksinimini nasıl kaldırabilirim (yani, "ubuntu" kullanıcısının ssh ile oturum açmak için sertifika dosyasını kullanması gerekir), böylece normal sftp istemcileri bir kullanıcı adı ve parola kullanarak bağlanabilir mi?

Teşekkür ederim.

PS Standart bir Ubonu Server 10.10 kullanarak resmi AMI kanonik, mikrobit üzerinde 64bit.

Yanıtlar:


10

İstediğinizi başarmak için iki farklı şey yapmanız gerekir

  1. Şifreleri kabul etmek için sshd config'i değiştirin

Her şeyden önce bunu yapmanın kötü bir fikir olduğunu söyleyeceğim, kullanıcı için parolaları etkinleştirmekten ziyade bir sertifika oluşturmayı tercih ederim, yine de bunu yapmak istiyorsanız, sadece düzenleyin /etc/ssh/sshd_configve değiştirin veya gösterilmesini isteyin PasswordAuthentication yes. Bu yapıldıktan sonra sshd'yi yeniden başlatınservice ssh restart

  1. Kullanıcıların sadece sftp kullanarak FTP yapmasına izin verin ve kabuğu yok

Bunu yapmak için rsh (resticted shell) kurmanız ve kullanıcı kabuğunu değiştirmeniz gerekir. chsh username


Yalnızca sftp erişimi olan bu kullanıcının (test kullanıcısı) sertifika yerine şifre kullanmasını istiyorum. Bu kullanıcının ssh ile erişmesine izin vermeme kısmı, zaten bash türünü / bin / false olarak tanımlayarak yaptım
Doron

1
Doron, bir kullanıcıya passwd ile izin veremezsiniz, ya herkes için ya da hiç kimse için şifre yetkisine izin verirsiniz. Ayrıca /bin/falsesftp bağlantılarına izin vermeyecektir (herhangi bir ssh bağlantısının geçerli bir kabuğa ihtiyacı vardır, burası
rsh'ın

1
Bu benim için Ubuntu EC2'de işe yaramadı, eksik olduğum ekstra adımın ne olduğundan emin değilim, bağlantı noktası 22 açık
Doug Molineux

Şifre ile sadece sftp kullanıcısı kurmak için serverfault.com/questions/154957/… adresine bakın ...
Raman

0

İşte izin vermek için adım adım bir kılavuz:

  1. Bob kullanıcısı için / home / bob / uploadlarına SFTP erişimi
  2. Bobu SSH'den kilitleyin
  3. Anahtarlar yerine kullanıcı adı / şifreler kullanın:

İlk olarak, / etc / ssh / sshd_config dosyanızı düzenleyin:

sudo nano /etc/ssh/sshd

Aşağı kaydırın ve değiştirin:

PasswordAuthentication yes

ve en alta ekleyin:

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

Çıkmak ve kaydetmek için Ctrl-X tuşlarına basın.

Şimdi kullanıcıyı ekleyin:

sudo useradd bob
sudo passwd bob

Şimdi grupları ekleyin ve ssh'yi devre dışı bırakın:

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

Şimdi izinleri ayarlayı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üm bunlar kök kullanıcı olarak oturum açarken (Amazon Linux AMI'larda ec2 kullanıcısı)


3
Sadece bir kullanıcının şifre yetkisini kullanmasına izin vermek için pantolonunuzu düşürmenize gerek yok.
EEAA
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.