Настройка sftp-сервера в ubuntu 18.04 lts

Шаг 1 — Создание пары ключей RSA

Первый шаг — создание пары ключей на клиентской системе (обычно на вашем компьютере):

По умолчанию команда создает пару 2048-битных ключей RSA. Этот уровень защиты достаточен для большинства случаев (но при желании вы можете использовать флаг , чтобы создать более надежный 4096-битный ключ).

После ввода команды вы должны увидеть следующее:

Нажмите , чтобы сохранить пару ключей в подкаталог домашнего каталога или укажите альтернативный путь.

Если вы ранее создали пару ключей SSH, вы можете увидеть следующую строку:

Если вы решите перезаписать ключ на диске, вы больше не сможете выполнять аутентификацию с помощью предыдущего ключа. Будьте осторожны при выборе варианта yes, потому что этот процесс уничтожает ключи, и его нельзя отменить.

Затем вы должны увидеть следующую строку:

Здесь вы можете ввести защищенный пароль, что настоятельно рекомендуется сделать. Пароль добавляет дополнительный уровень безопасности для защиты от входа в систему несанкционированных пользователей. Дополнительную информацию о безопасности можно найти в нашем обучающем модуле Настройка аутентификации на базе ключей SSH на сервере Linux.

Вы должны увидеть следующий результат:

Теперь у вас есть открытый и закрытый ключи, которые вы можете использовать для аутентификации. Наследующем шаге вам нужно разместить открытый ключ на сервере, чтобы вы могли использовать аутентификацию на базе ключей SSH для входа в систему.

Step 4 — Disabling Password Authentication on your Server

If you were able to log into your account using SSH without a password, you have successfully configured SSH-key-based authentication to your account. However, your password-based authentication mechanism is still active, meaning that your server is still exposed to brute-force attacks.

Before completing the steps in this section, make sure that you either have SSH-key-based authentication configured for the root account on this server, or preferably, that you have SSH-key-based authentication configured for a non-root account on this server with privileges. This step will lock down password-based logins, so ensuring that you will still be able to get administrative access is crucial.

Once you’ve confirmed that your remote account has administrative privileges, log into your remote server with SSH keys, either as root or with an account with privileges. Then, open up the SSH daemon’s configuration file:

Inside the file, search for a directive called . This may be commented out. Uncomment the line and set the value to “no”. This will disable your ability to log in via SSH using account passwords:

/etc/ssh/sshd_config

Save and close the file when you are finished by pressing , then to confirm saving the file, and finally to exit nano. To actually implement these changes, we need to restart the service:

As a precaution, open up a new terminal window and test that the SSH service is functioning correctly before closing this session:

Once you have verified your SSH service, you can safely close all current server sessions.

The SSH daemon on your Ubuntu server now only responds to SSH keys. Password-based authentication has successfully been disabled.

Шаг 1 — Создание пары ключей RSA

Сперва создадим пару ключей на клиентской машине (обычно, это ваш компьютер):

По умолчанию создаёт 2048-битную пару ключей RSA, которая достаточно безопасна для большинства сценариев использования (вы можете также добавить к этой команде флаг для получения 4096-битный ключей).

После ввода этой команды вы должны увидеть следующий вывод:

Нажмите Enter для сохранения пары ключей в директорию внутри вашей домашней директории или задайте другую директорию.

Если ранее вы уже генерировали пару SSH ключей, вы можете увидеть следующий вывод:

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

Вы должны увидеть следующий вывод:

Здесь вы можете задать ключевую фразу (passphrase), что обычно рекомендуется сделать. Ключевая фраза добавляет дополнительный уровень безопасности для предотвращения входа на сервер неавторизованных пользователей. Для того, чтобы узнать больше о том, как это работает, рекомендуем ознакомиться с нашим руководством по настройке аутентификации по ключам SSH на серверах Linux.

Вы должны увидеть следующий вывод:

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

Что можно поменять в настройках SSH

  • Порт. По умолчанию утилита использует порт 22. Если его не изменить на другой, злоумышленник очень легко сможет получить доступ к вашей системе. Чтобы поменять номер порта, найдите строчку Port 22, и замените 22 на любой другой номер.
  • Протокол. Утилита SSH поддерживает два протокола для лучшей совместимости. Тем не менее, протокол 1 уже считается устаревшим и небезопасным, поэтому лучше всего пользоваться протоколом 2. Чтобы активировать его, найдите строчку #Protocol 2, удалите знак # в начале строки. В некоторых случаях может встречаться запись типа Protocol 1, 2. В таком случае вам нужно оставить только последнее значение.
  • Автоматический вход суперпользователя. Непонятно зачем, но по умолчанию эта функция активирована. Если её не отключить, то это может серьёзно повредить вашей безопасности. Найдите в конфигурационном файле строку PermitRootLogin и замените значение prohibit-password на no.
  • Авторизация по ключу. Подключение по ключу является наиболее надёжным, так как его практически невозможно взломать. Вам нужно найти строку PubkeyAuthentication и проверить, не отличается ли значение этого параметра от необходимого yes. Как создавать сам ключ, мы расскажем в следующем пункте. 
  • Доступ определённой группы пользователей. Если вы хотите, чтобы доступ к удалённому компьютеру могла получить определённая группа пользователей, а не кто попало, в конце добавьте несколько строк типа: AllowUsers User1, User2, User3 либо AllowGroups Group1, Group2, Group3, если дело касается групп. Вместо User и Group пропишите конкретные названия.
  • Разрешение запуска графического интерфейса приложений. Чтобы в дальнейшем запускать приложения с графическим интерфейсом на удалённом компьютере, вместо того чтобы довольствоваться командной строкой, в конфигурационном файле добавьте строчку, прописав X11Forwarding yes.

Основные команды SFTP

Оказавшись в командной строке можно получить список доступных команд с помощью команды

> help
Available commands:
bye                                Quit sftp
cd path                            Change remote directory to 'path'
chgrp grp path                     Change group of file 'path' to 'grp'
chmod mode path                    Change permissions of file 'path' to 'mode'
chown own path                     Change owner of file 'path' to 'own'
df                      Display statistics for current directory or
                                   filesystem containing 'path'
exit                               Quit sftp
get  remote        Download file
reget  remote       Resume download file
reput   remote      Resume upload file
help                               Display this help text
lcd path                           Change local directory to 'path'
lls ]            Display local directory listing
lmkdir path                        Create local directory
ln  oldpath newpath            Link remote file (-s for symlink)
lpwd                               Print local working directory
ls               Display remote directory listing
lumask umask                       Set local umask to 'umask'
mkdir path                         Create remote directory
progress                           Toggle display of progress meter
put  local        Upload file
pwd                                Display remote working directory
quit                               Quit sftp
rename oldpath newpath             Rename remote file
rm path                            Delete remote file
rmdir path                         Remove remote directory
symlink oldpath newpath            Symlink remote file
version                            Show SFTP version
!command                           Execute 'command' in local shell
!                                  Escape to local shell
?                                  Synonym for help

Текущий рабочий каталог:

> pwd # удаленный рабочий каталог
> lpwd # локальный рабочий каталог

Изменить рабочую директорию:

> cd uploads # сменить директорию на удаленной системе
> lcd uploads # сменить директорию на локальной системе

Список файлов и директорий:

> ls # список на удаленной системе
> lls # список на локальной системе

Загрузить на удаленную систему файл или директорию:

> put image.jpg # загрузить файл
> put -r images/ # загрузить директорию

Скачать с удаленной системы файл или директорию:

> get image.jpg # скачать файл
> get -r images/ # скачать директорию

Создать директорию:

> mkdir images # создать директорию на удаленной системе
> lmkdir images # создать директорию на локальной системе

Удалить директорию:

> rmdir images # удалить директорию на удаленной системе
> !rmdir images # удалить директорию на локальной системе

Выполнить произвольную команду на локальной системе:

> !команда

Выполнить несколько команд на локальной системе:

> ! # временно выходим из командной строки sftp
$ команда # выполняем команду в shell (bash)
$ команда # выполняем команду в shell (bash)
$ exit # возвращаемся к командной строке sftp
> 

Завершить сеанс:

> exit # или quit или bye

Поиск:
CLI • Linux • SSH • Ubuntu • Директория • Конфигурация • Настройка • Сервер • Файл • SFTP

Шаг 3 — Аутентификация на сервере Ubuntu с использованием ключей SSH

Если вы успешно проделали описанные выше шаги по переносу публичного  ключа, вы должны быть способны зайти на свой удалённый хост без использования пароля.

Процесс входа выглядит так же:

Если вы заходите на удалённый хост по SSH в первый раз, вы можете увидеть вывод следующего вида:

Это означает, что ваш локальный компьютер не узнал удалённый хост. Напечатайте “yes” и нажмите для продолжения.

Если при создании пары ключей вы не задали ключевую фразу  (passphrase), вы будете залогинены автоматически

Если вы задали  ключевую фразу, вам будет предложено её ввести (обратите внимание, что  вводимые символы не будут отображаться на экране в целях безопасности).  После аутентификации откроется новая сессия оболочки (shell session) на  удалённом хосте от имени используемого вами удалённого аккаунта  пользователя

Если аутентификация по ключу прошла успешно, рекомендуем ознакомиться  с тем, как далее повысить безопасность вашего сервера путём отключения  входа по паролю.

Настройка OpenSSH на Ubuntu 20.04

По умолчанию SSH-соединение работает по порту 22. Из соображений безопасности порт лучше изменить. Для этого:

1.
Запустите терминал с помощью комбинации клавиш Ctrl + Alt + T.

2.

Откройте конфигурационный файл в текстовом редакторе:

3.

В sshd_config замените порт 22 на другое значение в диапазоне от 1 до 65 535

Важно, чтобы выбранный порт не был занят другой службой:

CentOS 8 настройка SSH

4.

Чтобы изменения вступили в силу, перезапустите SSH-сервер:. Готово, вы настроили OpenSSH на Ubuntu 20.04

Теперь вы можете внести дополнительные настройки или в Ubuntu разрешить пользователю доступ по SSH

Готово, вы настроили OpenSSH на Ubuntu 20.04. Теперь вы можете внести дополнительные настройки или в Ubuntu разрешить пользователю доступ по SSH.

Примеры

Существует большое количество методов использования утилиты. Большинство из них неизвестны современному пользователю операционной системы Линукс.

Рассмотрим подключение к серверу.

При присоединении с использованием утилиты в командной строке потребуется ввести:

Например, нам надо подключиться к компьютеру в локальной сети debian, под пользователем slon.

Все современные пользователи первоначально присоединяются к удаленной хосту (компьютеру). Только после этого они вводят требуемые команды. Утилита ssh дает возможность выполнить необходимую задачу без обязательного запуска терминала на удаленной машине.

Предположим нам надо запустить команду top на удаленном компьютере.

К примеру, требуется запустить скрипт bash на удаленном компьютере. Сам файл bash.sh находится на локальном компьютере . Для этих целей необходимо провести перенаправление ввода bash.

С использованием утилиты пользователю предоставляется возможность сохранить бекап локального диска на удаленной серверной машине. Для этих целей нужно перенаправлять вывод dd с использованием оператора перенаправления.  Далее вывод dd сохраняется в файле copiadiska.img.

Для восстановления прежнего состояния локального диска используется созданная ранее копия. Для этого в командной строке нужно ввести:

При использовании команды ssh для входа в удаленный сервер нередко требуется пароль. Это создает дополнительные неудобства, но дает возможность обезопасить вас от злоумышленников. Несмотря на защиту, пароль можно подобрать.

Наиболее надежным методом аутентификации является использование нескольких ключей RSA. Один из них хранится на ПК, а второй является публичным. Он применяется пользователем при авторизации.

Это поведение весьма просто настроить. Изначально необходимо задать ключ. Для этого потребуется ввести:

При создании ключа пользователю необходимо ответить на определённый перечень вопросов. Если вы желаете присоединиться к удаленной машине без обязательного введения пароля, в области «Passphare» нужно оставить пустое место.

Далее ключ отправляется на удаленную машину, вводится:

После этого ключ будет сохранен. Если попробовать присоединиться к серверу повторно, вы увидите, что введение пароля уже не требуется.

Стоит отметить, размещать пароли в обыденных текстовых файлах не стоит. Ими могут воспользоваться злоумышленники Но если это потребуется, такой вариант возможен. Чтобы сохранить пароль, необходимо воспользоваться оператором, используемым при перенаправлении Bash. Введите в командной строке:

При запуске команды ssh на экране монитора нередко всплывает приветствие. Допускается его изменение. За такую функцию отвечает специальный файл «/etc/issue». Вам потребуется просто открыть данный файл и указать необходимо приветствие. Для этого вводится команда:

В некоторых случаях пользователю ОС Линукс может потребоваться информация о неудачных попытках подключения к утилите. Вы можете посмотреть IP-адреса, с которых совершалось данное действие.

Все запросы о входах концентрируются в «/var/log/secure».

Чтобы отфильтровывать информацию в терминале по запросу «Failed password» необходимо добавит grep

Нередко пользователям требуется запустить определенное приложение с графической оболочкой на удаленном компьютере.

Для осуществления поставленной задачи не нужно использовать VNC, достаточно применить команду ssh. Программа запустится со стороны удаленной машины, пользователю транслируется лишь окно, в котором можно увидеть все, что ему необходимо.

Стоит отметить, что все получаемые данные могут шифроваться. Чтобы такая опция заработала, потребуется включить поддержку со стороны удаленного сервера. Далее выполняется команда, позволяющая загрузить графическую программу. Для этого потребуется ввести в командную строку «ssh -XC user@remotehost «eclipse»».

Нередко при использовании нестабильного соединения с сетью возможно возникновение сбоев в работе утилиты. Если соединение случайным образом было разорвано, потребуется принудительное завершение сессии. Для активации поддержки необходимо добавить в файл:

Теперь можно завершить сессию простой командой:

В завершении можно сказать, что утилита ssh имеет существенно больший функционал, чем это кажется с первого взгляда. Пользоваться такой командой можно как при программировании, так и в повседневной работе.

Передача файлов с помощью SFTP

Навигация по удаленной и локальной файловой системе дает ограниченную пользу без возможности передачи файлов между двумя файловыми системами.

Передача удаленных файлов в локальную систему

При необходимости загрузки файлов с удаленного хоста мы можем воспользоваться следующей командой для выполнения этой задачи:

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

Мы можем скопировать удаленный файл с другим именем, указав после команды нужное имя:

Команда также имеет несколько флагов. Например, мы можем скопировать каталог и все его содержимое с помощью рекурсивной опции:

Флаги или позволяют сохранить соответствующие права и время доступа при копировании с помощью SFTP:

Передача локальных файлов в удаленную систему

Передача файлов в удаленную систему осуществляется таким же удобным образом с помощью команды с именем «put»:

Флаги, доступные для команды , могут применяться и с командой . Чтобы скопировать всю локальную директорию, вы можете воспользоваться следующей командой:

Примечание: в настоящее время в версиях OpenSSH, предоставляемых в текущих версиях Ubuntu (начиная, по крайней мере, с версии 14.04 до версии 15.10), существует баг, который препятствует корректной работе указанной выше команды. При попытке использования команды выше для передачи данных серверу, использующему дефектную версию OpenSSH, вы получите следующую ошибку: .

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

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

Обратите внимание, что локального варианта этой команды нет, но мы можем обойти это ограничение, воспользовавшись в качестве команды. Команда перемещает нас в локальную оболочку, где можно запустить любую команду в локальной системе

Мы можем проверить использование диска с помощью следующей команды:

Команда перемещает нас в локальную оболочку, где можно запустить любую команду в локальной системе. Мы можем проверить использование диска с помощью следующей команды:

а затем

Любая другая локальная команда будет работать согласно ожиданиям. Чтобы вернуться в сеанс SFTP, введите:

Вы должны увидеть, что приглашение SFTP вернулось.

ssh-copy-id

Я предпочитаю использовать с флагом -i и задавать путь до нужного ключа

sudo ssh-copy-id -i ~/.ssh/andrei-key.pub andrei@192.168.0.2

/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: «/home/andrei/.ssh/andrei-key.pub»
The authenticity of host ‘192.168.0.2 (192.168.0.2)’ can’t be established.
ECDSA key fingerprint is SHA256:abcdefgh1234567890abcdefgh1234567890abc+def.
Are you sure you want to continue connecting (yes/no/)?

Введите yes

Are you sure you want to continue connecting (yes/no/)? yes
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed — if you are prompted now it is to install the new keys
andrei@192.168.0.2’s password:

Введите пароль

Number of key(s) added: 1

Now try logging into the machine, with: «ssh ‘andrei@192.168.0.2′»
and check to make sure that only the key(s) you wanted were added.

Теперь на хосте 192.168.0.2 в файле
/home/andrei/.ssh/authorized_keys
появилась новая запись вида

ssh-rsa AAAAB3NzaC1y … lseP/jXcq … Uydr/2CwQ &hellip ++TpY19pHqD/AnhL … Az62T/Ipyx … 8U2T andrei@host.andrei.com

Знак … заменяет длинные последовательности случайных символов для экономии места.

Проверить ключ можно командой

ssh -i ~/.ssh/mykey user@host

В нашем случае

ssh -i ~/.ssh/andrei-key andrei@192.168.0.2

Если вы не задавали пароль для ключа, то попадёте на удалённый хост без лишних движений

Last login: Sun Jan 10 16:48:27 2021 from 192.168.0.1

Шаг 4 — Отключение аутентификации на сервере с помощью пароля

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

Прежде чем выполнять описанные в настоящем разделе шаги, убедитесь, что вы настроили аутентификацию на базе ключей SSH для учетной записи root на этом сервере, или (предпочтительно) вы настроили аутентификацию на базе ключей SSH для учетной записи сервера без привилегий root и с привилегиями

На этом шаге вход в систему по паролю будет заблокирован, поэтому очень важно сохранить возможность доступа с правами администратора

Подтвердив права администратора для удаленной учетной записи, выполните вход на удаленный сервер с помощью ключей SSH как пользователь с привилегиями root или как пользователь с привилегиями . Затем откройте файл конфигурации демона SSH:

Найдите в файле директиву . Она может быть помечена как комментарий. Удалите символ комментария в начале строки и установите значение «no». После этого вы не сможете выполнять вход в систему через SSH с использованием паролей учетной записи:

/etc/ssh/sshd_config

Сохраните и закройте файл, нажав + , затем нажмите для подтверждения сохранения файла, а затем нажмите для выхода из nano. Для фактического внесения этих изменений нужно перезапустить службу :

В качестве меры предосторожности откройте новое окно терминала и проверьте работу службы SSH, прежде чем закрывать этот сеанс:

После проверки работы службы SSH вы сможете безопасно закрыть все текущие сеансы сервера.

Теперь демон SSH на вашем сервере Ubuntu будет реагировать только на ключи SSH. Аутентификация на базе паролей успешно отключена.

Настройте сервер SSH

Для того, чтобы установить SSH сервер очень легко, но делает его гораздо более безопасным, требует немного больше работы. После завершения установки отредактируйте файл. Но прежде чем приступить к редактированию любого файла конфигурации, я предлагаю вам сделать резервную копию исходного файла:

Теперь используйте следующую команду для редактирования файла:

Первое, что вы захотите отредактировать, это порт, который прослушивает ваш SSH-сервер. По умолчанию SSH-сервер прослушивает порт 22. Все это знают. Поэтому для обеспечения безопасности соединения всегда рекомендуется запускать сервер SSH через нестандартный порт. Поэтому отредактируйте следующий раздел, чтобы выбрать случайный номер порта:

Для повышения безопасности вы можете дополнительно настроить еще несколько параметров. Первый есть . Установите это, чтобы запретить кому-либо входить в систему , что значительно снижает вероятность серьезных изменений со стороны хакеров.

Второе необязательное изменение для повышения безопасности – перечисление пользователей, которым разрешен удаленный доступ к системе через SSH. Для этого добавьте следующую строку в конец файла:

Замените и на фактические имена пользователей.

Единственное, что вы можете пожелать, это установить «да». Это позволит вам запускать программное обеспечение на удаленном сервере в локальной системе. Если локальной системой является Windows, которая не поставляется с, вы можете использовать бесплатные программы, такие как Xming.

После установки SSH-сервера и внесения любых изменений в файл конфигурации () вам придется перезапустить службу. Используйте следующую команду для перезапуска SSH:

Если вы настроили псевдонимы bash, как описано в этом посте, вы можете использовать ярлыки (например ) для перезапуска вашего сервера OpenSSH.

Безопасная оболочка Ubuntu

Итак, установите SSH-сервер в вашей системе Ubuntu и начните пользоваться удаленным доступом. Теперь вы можете получить доступ к системным папкам и файлам через SFTP с помощью таких программ, как FileZilla.

Источник записи: https://www.smarthomebeginner.com

Шаг 4 — Отключение аутентификации по паролю на вашем сервере

Если вам удалось войти в ваш удалённый аккаунт на удалённом хосте по SSH без ввода пароля, вы успешно настроили аутентификацию по ключу SSH для вашего аккаунта. Однако возможность входить на сервер с использованием пароля всё есть активна, что означает, что ваш сервер уязвим для атак с перебором пароля (brute-force attacks).

Перед тем как следовать дальнейшим инструкциям, убедитесь, что вы настроили аутентификацию по ключу SSH для вашего пользователя или для пользователя с привилегиями на вашем сервере

После завершения описанных далее процедур вход по паролю станет недоступен, поэтому очень важно убедиться, что у вас остаётся доступ к вашему серверу

Как только вы убедитесь, что аккаунт вашего удалённого пользователя имеет привилегии администратора, войдите на сервер с использованием аутентификации по ключу SSH, используя либо аккаунт , либо аккаунт пользователя с привилегиями . Далее откройте конфигурационный файл демона SSH:

Внутри файла найдите директиву . Она может быть закомментирована. Раскомментируйте её при необходимости и установите её значение в “no”. Это отключит возможность входа на сервер по паролю.

/etc/ssh/sshd_config

Сохраните и закройте файл нажав + , затем для подтверждения сохранения файла, а далее для выхода из текстового редактора nano. Для применения внесённых изменений нам необходимо перезапустить сервис :

В качестве меры предосторожности откройте новое окно терминала и проверьте, что соединение по SSH работает корректно, перед тем, как закрывать текущую сессию:

После проверки работоспособности SSH соединения, вы можете закрыть все открытые сессии с сервером.

Теперь демон SSH на вашем сервере с Ubuntu работает только с ключами SSH. Аутентификация по паролю полностью отключена.

Настраиваем доступ по SSH

Часть 2.

Перед тем как начнём, давайте создадим нового пользователя с root правами.

Команда

adduser test

Укажем права пользователю test командой

usermod -a -G sudo test

Чтобы убедиться, что пользователь test был добавлен в группу sudo, можно выполнить следующую команду:

id test

Теперь настраим удаленный доступ к серверу по ssh (командная строка), как по локальной сети, так и по интернету

Установим ssh

sudo apt-get install openssh-server

После установки нам необходимо настроить безопасность соединения и непосредственный доступ.
Зайдем в файл с настройками

sudo nano /etc/ssh/sshd_config

По умолчанию, ssh использует порт 22. Заменим его на нестандартный, это повысит безопасность нашего доступа. Порт заменим например на 2200

При подключении по ssh, наш сервер потребует вместо пароля ключ RSA, а не пароль.
Что бы этого не произошло, в параметре RSAAuthentication и PubkeyAuthentication, вписываем «NO».
Так же запрещаем доступ пользователю ROOT, для этого нужно раскомментировать параметр
Authetication: и в параметре PermitRootLogin вписать «NO»

Теперь пропишем доступ пользователям

В строке AllowUsers прописываем пользователей через пробел в виде юзер@хост, т. е. указываем какой пользователь откуда может подключаться.
Можно использовать знак *

Пропишем пользователю test права доступа и разберёмся в них.

  • test@* — пользователь test может подключаться откуда угодно
    test@192.168.0.* — пользователь test может подключаться только находясь в 192.168.0.0 подсети
    test@192.168.0.104 — пользователь test может подключиться только с ip адреса 192.168.0.104
    *@192.168.0.* — все пользователи могут подключаться находясь в 192.168.0.0 подсети

Так же можно запретить доступ определённым пользователям (например пользователю test2), для этого нужно вписать ниже

DenyUsers test2

Запускаем

sudo /etc/init.d/ssh start

Ssh мы настроили. Теперь откроем к нему доступ. Для этого откроем доступ к порту 2200.

В прошлой части мы устанавливали firewall командой arno-iptables-firewall, теперь нужно внести туда изменения.
По этому перенатроим его.

sudo dpkg-reconfigure arno-iptables-firewall

Запустилась настройка

Вписываем порт, который нужно открыть. Так же в этом окне можно вписать и другие порты, если они нуждаются в открытии.

В следующем окне, так же вписваем порт 2200.

Как только вписали порты, можно везде нажимать ENTER и перезагрузить Файрвол.

После этого порт ssh будет доступен из сети

Для повышения безопасности ssh соединения можно настраиваем утилиту denyhosts.
Утилита представляет собой python-скрипт, который анализирует файл /var/log/auth.log
на наличие записей о несанкционированных попытках входа на сервер по ssh и
добавляет ip-адреса, с которых осуществлялись эти попытки в файл /etc/hosts.deny, с которых запрещен вход по ssh.

Установим командой

sudo aptitude install denyhosts

Сразу после установки утилита просканирует файл /var/log/auth.log и добавит ip-адреса,
с которых осуществлялся подбор паролей, в /etc/hosts.deny. На сканирование потребуется время,
если в файле /var/log/auth.log уже много таких записей.

После установки нужно подправить конфигурационный файл

sudo nano /etc/denyhosts.conf

Скорректируем настройку PURGE_DENY на 3 часа. А то мы можем заблокировать доступ
самому себе, введя несколько раз неверный пароль.

PURGE_DENY = 3h

Ещё, для контроля, нужно указать адрес электронной почты для рассылки уведомлений
о неудачных попытках доступа к серверу:

Для того чтобы новые настройки вступили в силу, нужно перезапустить службу denyhosts:

sudo service denyhosts restart

P.S. Если вам понадобиться сменить пароль на учетной записи. Введите команду

passwd user — где user это имя пользователя

P.S.S. Если возникнут проблемы с кодирвкой, то покопайтесь в настройках клиентской программы shh

Самая популярная программа для работы по ssh, программа PuttY.

Схожие статьи

  • Настраиваем на Ubuntu Dhcp и Dns сервера, а так же доступ в интернетНастраиваем доступ по SSHНастраиваем VPN PPPTPНастраиваем webminНастраиваем FTP на Ubuntu

Уважаемые посетители сайта, если вам нужна помощь в решении проблем, то оставляйте комментарий в форме, а не Вконтакте. Так я смогу быстре ответить на ваш вопрос

Если есть желание поблагодарить за помощь, просьба поддержать просмотрами видео на канале в YouTube

https://youtube.com/watch?v=videoseries

Или можете помочь проекту материально

SSH Keys

SSH allow authentication between two hosts without the need of a password. SSH key authentication uses a private key and a public key.

To generate the keys, from a terminal prompt enter:

This will generate the keys using the RSA Algorithm. At the time of this writing, the generated keys will have 3072 bits. You can modify the number of bits by using the option. For example, to generate keys with 4096 bits, you can do:

During the process you will be prompted for a password. Simply hit Enter when prompted to create the key.

By default the public key is saved in the file , while is the private key. Now copy the file to the remote host and append it to by entering:

Finally, double check the permissions on the file, only the authenticated user should have read and write permissions. If the permissions are not correct change them by:

You should now be able to SSH to the host without being prompted for a password.

Secure SSH configuration file

The “/etc/ssh/sshd_config” file is the system-wide configuration file for SSH which allows you to set different options to improve the security of an SSH server. The default configuration in the config file is very insecure, so you need to edit it first and set proper options to improve the security.

To edit the “/etc/ssh/sshd_config” file, run

Change SSH listening port

By default, SSH listens on port 22. Attackers use port scanners to see whether an SSH service is running or not. It is recommended to change the default port.

To change the default port to 2200, change:

to

Only use Protocol 2

Version 1 of the protocol contains security vulnerabilities. Protocol 2 is the default entry on Ubuntu.

Change the line shown below:

Limit users access

It is necessary to allow only specific users to log in to SSH. It can improve your security. By default, this option is not available in the SSH configuration file.

To allow “user1” and “user2,” add the following line:

To deny “baduser1” and “baduser2,” add the following line:

Disable root login

It is not necessary to log in as root via ssh over a network. Normal users can also use or to gain root level access. Most attackers will try to use root user to log in. This is a big security risk, so it is recommended to deny the root login.

To disable root login, change the line

to

Hide last login

You can hide who logged in last when a user logs in.

For this, change the line

to

Restrict the interface to log in

By default, ssh will listen on all network interfaces. If you want to allow an SSH connection to be accepted from specific IP addresses, you can change the line

to

Disable password uthentication

Using password authentication is a big security risk if your user uses a weak password. It is recommended to use “ssh keys.” An “ssh key” can contain over 600 random characters and be difficult to break.

For this, change the line

to

Disable .rhosts files

The .rhosts files specify which users can access the r-commands (rsh, rcp, rlogin, etc.) on the local machine without a password. By default an .rhosts file is disabled; if not, then change the lines as shown below.

Disable host-based authentication

SSH’s host-based authentication is more secure than .rhosts authentication. However, it is not recommended that hosts trust one another. By default, this option is disabled.

If not, then change the line shown below.

Set a login grace timeout

The “LoginGraceTime” specifies how long after a connection request the server will wait before disconnecting. It is recommended to reduce it to 60 seconds.

For this, change the line

to

Set maximum startup connections

Setting up a proper maximum number of concurrent connections to the SSH daemon can be helpful against a brute-force attack.

For this, change the line

to

Disable forwarding

The port forwarding technique is used by attackers to tunnel network connections through an SSH session to log into systems. It is recommend to disable this option.

For this, change the line

to

Log more information

By default, SSH logs everything. If you want to log more information like failed login attempts. you can change the value of this to “VERBOSE.”

For this, change the line

to

Disable empty passwords

It is necessary to deny users with empty passwords on your server. By default is disabled in Ubuntu.

If not, then change the line shown below.

Set idle timeout interval

By default, this options is not available in the SSH default configuration file. It is recommended to set a proper idle timeout to avoid an unattended ssh session.

For this, add the following lines.

Strict mode

This will prevent the use of insecure home directory and key file permissions. By default, this option is enabled.

If not, then change the following line.

Now save and exit the /etc/ssh/sshd_config file and restart the SSH server.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Adblock
detector