Я полный нуб Apache, и после долгого выдергивания волос и скрежета зубов наконец получил SFTP-доступ к новому экземпляру EC2 в пассивном режиме. Можно войти только как «ec2-user» или «root» без пароля, но не с моим именем пользователя и / или паролем ... Я создал файл .htaccess в / home / admin, / home / ec2-user, и каталоги / home / myusername ... Я настроил /etc/httpd/conf/httpd.conf, /etc/vsftpd/vsftpd.conf, а также изменил настройки группы безопасности AWS и порты / протоколы в соответствии с этими настройками, и создал файл .ssh / authorized_keys для каждого из указанных выше пользовательских каталогов. Я не могу перетаскивать / перетаскивать с локального компьютера на экземпляр EC2 через FTP-клиент (Filezilla), поэтому, очевидно, хотя я могу войти в систему как пользователь ec2, у меня нет прав на запись. Подозреваю, мне нужно поесть ... что-нибудь?
Я использую рекомендованную здесь настройку vsftpd
Есть идеи, что мне нужно изменить, чтобы 1) войти в систему через Filezilla как «myusername», а не «ec2-user» или «root»?
PS: У меня установлено и работает большинство подходящих инструментов командной строки AWS ...
Вы упомянули (и, возможно, запутали) несколько разных вещей, поэтому ваша цель, к сожалению, не совсем ясна.
vsFTPd можно настроить для использования локальных пользователей. Для этого:
Для SFTP (без vsftpd!):
Теперь о проблеме с разрешениями, с которой вы столкнулись:
Поэтому ваши варианты:
Я бы порекомендовал SFTP с сертификатом, а ваши домашние каталоги в / var / www / html
Отказ от ответственности: использовать сертификаты намного безопаснее, чем пароли, и вам следует отключить аутентификацию пароля.
#Add the shell
echo /usr/libexec/openssh/sftp-server >> /etc/shells
#Create a user with the shell, I have not setup a home folder
useradd -M -s /usr/libexec/openssh/sftp-server USERNAME
#Set the password
passwd USERNAME
Edit /etc/ssh/sshd_config:
Change: PasswordAuthentication no to PasswordAuthentication yes (line 69), save and quit
#Restart SSH
service sshd restart
Поскольку sftp-сервер не будет находиться в вашем chroot-пути, нам нужно изменить его: Изменить (в sshd_config):
Subsystem sftp /usr/libexec/openssh/sftp-server
Кому:
Subsystem sftp internal-sftp
Добавьте в конец sshd_config следующее (замените путь, например, / var / www):
Match User USERNAME
ChrootDirectory /path/to/restrict/to
AllowTCPForwarding no
X11Forwarding no
ForceCommand internal-sftp
Match
Перезагрузите SSH:
service sshd restart