Как настроить пользователей на SFTP-сервере?

Это для Ubuntu 16.04 , если это имеет значение. Я пытался сделать тег, но там говорилось, что у меня недостаточно репутации.

Я настроил SFTP-сервер на экземпляре Amazon AWS EC2, чтобы наши клиенты могли безопасно передавать файлы. Я неплохо разбираюсь в программировании и хорошо разбираюсь в сетевых понятиях, однако моя проблема в том, что я никогда раньше не работал с Linux и не знаю об этом. Мне удалось настроить и настроить удаленный сервер, используя PuTTy и приложение с графическим интерфейсом WinSCP.

Это здорово для меня , но теперь мне нужно настроить пользователей для удаленного доступа наших клиентов к серверу и удаления их файлов.

Казалось, что все работает нормально, когда я использовал

useradd myuser
passwd myuser

для создания моего нового пользователя. Тем не менее, я хочу сгенерировать и добавить отдельный ключ для каждого пользователя, чтобы они могли проходить аутентификацию, и я заблудился и действительно запутался в море вкладок браузера, которые включают фразы ~ / .ssh / и авторизованные_ключи.

Я знаю, что могу использовать PuTTy, чтобы сгенерировать пару ключей priv / pub и сохранить открытый ключ в файле authorized_keys. Но как мне это сделать? Кроме того, есть ли лучший способ сделать это?

Бонусный вопрос: Каков наилучший способ отправки / получения ключа от / к клиенту?

Мне удалось получить набор пользователей и, думаю, я правильно добавил свой собственный ключ к authentic_keys, потому что они смогли запустить и сбросить тестовый файл для меня. В итоге я отправил им свой личный ключ в электронном письме с мыслью, что если они что-нибудь испортят, я просто убью экземпляр и запустю новый. Я знаю, мне не нужно было говорить, что это было большое нет-нет , но мне нужны были немедленные результаты. Честно говоря, примерно на третий день моих исследований я кратко высказал мысль о том, чтобы просто сделать это для всех наших клиентов, но я беспокоился, что это будет причиной возникновения возмущения, которое однажды заставит все небесные тела в нашей солнечной системе полностью выровняться и позволить космической энергии перетекать прямо в наше Солнце, в конечном итоге разрушая Землю, поэтому вместо этого я делаю этот пост

2
задан 13 May 2019 в 23:34

1 ответ

Итак, я наконец-то понял, как создать и настроить пользователя для SSH, и, хотя вы можете научиться этому на знакомом мне уровне, я думаю, что было бы полезно для других новичков, если бы был простой список команд, которые они мог бы посмотреть.

Первые 2 вещи, набрав sudo перед вашей командой, вы получите режим бога (запустите команды от имени root), если какие-либо команды не пройдут, используя sudo [command] в значительной степени всегда позволяет запустить его. А также вы можете посмотреть на использование любых команд и опции с помощью

 man [command]

Прежде всего создайте пользователя

useradd -m -d /home/myuser/
passwd myuser

Эти команды делают несколько вещей. Useradd создаст пользователя с любыми опциями, которые вы указали, или по умолчанию, если вы не

  • -m - создайте домашний каталог, если он еще не существует, также должен иметь -d . Имейте в виду, что вы не пишете с заглавной буквы -M , потому что эта опция явно не создает домашний каталог
  • -d - явно установите домашний каталог пользователей: / home / myuser /

С помощью этих команд мы создали пользователя myuser , установили его пароль (вы можете просто нажать enter несколько раз с помощью команды passwd, чтобы создать пустой пароль), и, наконец, установить его домашний каталог

Теперь, честно говоря, они могут быть созданы автоматически, я не могу вспомнить, но если вы планируете подключиться, используя SSH свой дом В каталоге должен быть каталог .ssh, и в этом каталоге должен быть файл author_keys

 mkdir /home/myuser/.ssh/
 echo "" > /home/myuser/.ssh/authorized_keys

mkdir должен быть достаточно понятен, но echo сделал некоторые сумасшедшие вещи. Прежде всего, команда echo просто выводит ... ничего, на стандартный вывод (стандартный вывод или просто терминал). Но мы использовали > здесь, который является специальным символом перенаправления, который говорит «эй, возьмите stdout и отправьте эти данные сюда», который в нашем случае является файлом, расположенным в /home/myuser/.ssh / authorized_keys. Посетите эту ссылку, чтобы узнать все о перенаправлениях в linux

Теперь часть, которая меня смутила, генерирует ключи и помещает открытый ключ на сервере . Делать это из самого терминала, по крайней мере, в тысячу раз легче, чем вычислять все с помощью puttygen.

 hostname
 ssh-keygen -t rsa -C "myuser@myhost"

Вам нужно будет знать ваше имя хоста, или вы можете использовать команду hostname для вывода его на стандартный вывод, вы можете создать пару ключей без указания хоста, но я думаю, что вам нужно измените его позже, чтобы он действительно работал, и это своего рода PITA, поэтому лучше, если мы сможем сделать это сейчас. Все, что вам нужно сделать, это запустить эту команду и следовать инструкциям, для этого поста я предполагаю, что вы использовали значения по умолчанию.

Добавьте открытый ключ в файл users authorized_keys

 cat ~/.ssh/id_rsa.pub >> /home/myuser/.ssh/authorized_keys
 echo -e "\n" >> /home/myuser/.ssh/authorized_keys

Здесь много чего происходит, поэтому позвольте мне объяснить. ~ - это, по сути, сокращение, означающее , в данный момент зарегистрированное в домашнем каталоге пользователя . cat - это команда, используемая для чтения файлов, мы будем читать файл ~ / .ssh / id_rsa.pub и перенаправить стандартный вывод в режиме добавления в / home / MyUser / .ssh / authorized_keys. Затем нам нужно добавить новую строку в файл, потому что каждый открытый ключ должен быть в отдельной строке. Снова используя echo, мы передадим «\ n» в stdout, но на этот раз с опцией -e , которая говорит «выполнять функцию экранированного символа, а не выводить»

Наконец, весь смысл это безопасность, верно? Итак, давайте ограничим пользователей только их домашним каталогом

 chmod -R 700 /home/myuser/
 chmod 600 /home/myuser/.ssh/authorized_keys
 chown -R myuser /home/myuser/

Вы знаете, что вы можете использовать команду man для просмотра документации по любым командам, поэтому я дам вам, ребята, понять, что те делают самостоятельно.

Наконец, на данный момент проще всего использовать SFTP-клиент, войти на сервер, затем скопировать закрытый ключ на локальный компьютер, затем его можно отправить по защищенной электронной почте или, что еще лучше, ваши клиенты могут выяснить, как создать свою собственную чёртову пару ключей и отправить вам только открытый ключ.

Надеюсь, это кому-нибудь поможет в конце концов.

0
ответ дан 13 May 2019 в 23:34

Другие вопросы по тегам:

Похожие вопросы: