Ssh enabling in linux

Ssh enabling in linux

Setting Up SSH on UNIX and Linux Systems

Setting up SSH on UNIX and Linux systems involves verifying that the SSH server daemon sshd is running and, if necessary, starting this daemon. Set up SSH on the DAS host and on all hosts where instances in your cluster will reside.

On UNIX and Linux systems, SSH software is typically installed as part of the base operating system. If SSH is not installed, download and install the appropriate OpenSSH SSH package for your operating system.

How to set up SSH on UNIX and Linux systems depends on the flavor of the operating system that you are running, as explained in the following sections:

To Set Up SSH on Oracle Solaris Systems

    Ensure that the following options in the configuration file /etc/ssh/sshd_config are set to yes:
  • Determine if the SSH server daemon sshd is running.
  • If the SSH server daemon sshd is not running, start this daemon.

    If the daemon is running, no further action is required.

    Example 2-2 Determining if the sshd Daemon Is Running on an Oracle Solaris System

    This example confirms that the SSH server daemon sshd is running on an Oracle Solaris system.

    After you have completed the setup of SSH on a host, test the setup on the host as explained in Testing the SSH Setup on a Host.

    To Set Up SSH on MacOS Systems

      Open System Preferences and click Sharing.

    The Sharing window opens.

    The user that running the DAS or instance

    After you have completed the setup of SSH on a host, test the setup on the host as explained in Testing the SSH Setup on a Host.

    To Set Up SSH on Linux systems

      Ensure that the following options in the configuration file /etc/ssh/sshd_config are set to yes:
  • Determine if the SSH server daemon sshd is running.
  • If the SSH server daemon sshd is not running, start this daemon.

    If the daemon is running, no further action is required.

    Example 2-3 Determining if the sshd Daemon Is Running on a Linux System

    This example confirms that the SSH server daemon sshd is running on a Linux system.

    After you have completed the setup of SSH on a host, test the setup on the host as explained in Testing the SSH Setup on a Host.

    Источник

    Как пользоваться SSH

    SSH — (Secure Shell) — это протокол удаленного управления компьютером с операционной системой Linux. В основном ssh используется для удаленного управления серверами через терминал. Если вы администратор нескольких серверов или даже продвинутый веб-мастер, то наверное, вы часто сталкиваетесь с необходимостью работать с тем или иным компьютером по ssh. В Linux для этого используется сервер ssh на машине, к которой нужно подключится и клиент, на той из которой подключаются.

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

    Базовый синтаксис

    Синтаксис команды выглядит следующим образом:

    $ ssh [опции] имя пользователя @ сервер [команда]

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

    Опции команды SSH

    Теперь давайте рассмотрим самые основные опции команды ssh:

    • f — перевести ssh в фоновый режим;
    • g — разрешить удаленным машинам обращаться к локальным портам;
    • l — имя пользователя в системе;
    • n — перенаправить стандартный вывод в /dev/null;
    • p — порт ssh на удаленной машине;
    • q — не показывать сообщения об ошибках;
    • v — режим отладки;
    • x — отключить перенаправление X11;
    • X — включить перенаправление Х11;
    • C — включить сжатие.

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

    /.ssh/config но здесь мы это тоже подробно рассматривать не будем.

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

    Настройки сервера SSH находятся в файле /etc/ssh/sshd_config. Многие из них мы тоже трогать не будем. Рассмотрим только самые интересные. Сначала откройте файл /etc/ssh/sshd.conf

    Порт ssh

    По умолчанию ssh работает на порту 22. Но такое поведение небезопасно, поскольку злоумышленник знает этот порт и может попробовать выполнить Bruteforce атаку для перебора пароля. Порт задается строчкой:

    Поменяйте значение порта на нужное.

    Протокол SSH

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

    И приведите ее к такому виду:

    Рут доступ

    По умолчанию Root доступ по ssh разрешен, но такое поведение очень небезопасно, поэтому раскомментируйте строчку:

    Доступ только определенного пользователя к SSH

    Мы можем разрешить доступ к ssh только для определенного пользователя или группы. Для этого добавьте строчки:

    AllowUsers User1, User2, User3
    AllowGroups Group1, Group2, Group3

    Здесь User1 и Group1 — пользователь и группа к которым нужно разрешить доступ.

    Выполнение X11 приложений

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

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

    service sshd restart

    Использование SSH

    Основная цель этой статьи — показать интересные и полезные способы использования ssh, о которых, возможно, вы не знали. Переходим к самому вкусному — возможности ssh.

    Подключение к серверу

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

    Выполнить команду

    Мы привыкли подключаться к удаленному серверу, а уже потом выполнять нужные команды, но на самом деле утилита ssh позволяет сразу выполнить нужную команду без открытия терминала удаленной машины. Например:

    ssh user@host ls

    Выполнит команду ls на удаленном сервере и вернет ее вывод в текущий терминал.

    Выполнить локальный скрипт

    Выполним интерпретатор bash на удаленном сервере и передадим ему наш локальный скрипт с помощью перенаправления ввода Bash:

    ssh user@host ‘bash -s’

    Бекап на удаленный сервер и восстановление

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

    sudo dd if=/dev/sda | ssh user@host ‘dd of=sda.img’

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

    ssh user@host ‘dd if=sda.img’ | dd of=/dev/sda

    Здесь и выше /dev/sda имя файла вашего жесткого диска.

    Аутентификация без пароля

    Использование ssh пароля для входа на сервер не только неудобно но и небезопасно, потому что этот пароль в любой момент может быть подобран. Самый надежный и часто используемый способ аутентификации — с помощью пары ключей RSA. Секретный ключ хранится на компьютере, а публичный используется на сервере для удостоверения пользователя.

    Настроить такое поведение очень легко. Сначала создайте ключ командой:

    ssh-keygen -t rsa

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

    Затем отправляем ключ на сервер:

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

    Взять пароль из локального файла

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

    Изменить приветствие SSH

    При входе по ssh может выводиться приветствие, изменить его очень легко. За это отвечает файл /etc/issue. Просто откройте этот файл и введите нужный текст:

    Смотрим неудачные попытки входа SSH

    Хотите посмотреть были ли попытки неудачного доступа по ssh к вашему серверу и с каких IP адресов? Запросто, все запросы логируются в файл /var/log/secure, отфильтруем только нужные данные командой:

    cat /var/log/secure | grep «Failed password for»

    Передача файлов по SSH

    Кроме выполнения команд, можно копировать файлы по ssh. Для этого используется утилита scp. Просто укажите файл, который нужно передать, удаленный сервер и папку на сервере, вот:

    $ scp /адрес/локального/файла пользователь@ хост: адрес/папки

    Кроме утилиты scp, передача файлов ssh может быть выполнена более хитрым способом. Прочитаем файл и с помощью cat, передадим, а там сохраним поток в файл:

    cat localfile | ssh user@host «cat > remotefile»

    ssh user@host «cat > remotefile»

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

    tar czf — /home/user/file | ssh user@host tar -xvzf -C /home/remoteuser/

    Такое копирование файлов ssh позволяет отправлять сразу целые папки.

    Запуск графических приложений по ssh

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

    Затем просто выполняем команду запуска графического приложения на удаленном сервере вот таким образом:

    ssh -XC user@remotehost «eclipse»

    Как вы уже видели опция X разрешает перенаправление X11 на стороне клиента, а С — сжатие данных.

    Завершение сессии SSH

    Если вы использовали SSH с нестабильным интернетом, когда соединение время от времени рвется, то вам уже, наверное, надоело закрывать терминал, потому что иначе, на первый взгляд, сеанс никак не прекратить. Когда соединение с удаленным сервером разорвано вы не можете ввести никакую команду и сочетания клавиш Ctrl+C, Ctrl+Z, Ctrl+D не работают. И не будут работать поскольку клиент пытается отправить эти команды на сервер. Но есть решение — Escape последовательности. Чтобы активировать их поддержку добавьте строку:

    В файл /etc/ssh/ssh_config. Теперь, чтобы разорвать SSH соединение достаточно нажать Enter и набрать:

    Другие управляющие символы можно узнать нажав:

    Туннели SSH

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

    $ ssh -L локальный_порт :удаленный_адрес : удаленный_порт пользователь@сервер

    Например, сделаем удалённую базу данных доступной локально на порту 5555. Для этого выполните подставив свои значения:

    $ ssh -N -L 5555:127.0.0.1:3306 root@losst-1

    Опция -N сообщает, что команду на удалённой машине выполнять не нужно. Локальный порт — 5555, поскольку сервер баз данных слушает на локальном интерфейсе удалённой машины, то и здесь надо указывать адрес 127.0.0.1. А порт MySQL по умолчанию 3306. Если же вы хотите чтобы локальный сервис был доступен на удалённой машине, то следует использовать опцию -R:

    $ ssh -N -R 5555:127.0.0.1:3306 root@losst-1

    Теперь локальная база данных на порту 3306 будет доступна на удалённом сервере при обращении к порту 5555.

    Выводы

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

    Источник

    Установка SSH в Ubuntu

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

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

    Что такое SSH?

    SSH или Secure Shell — это протокол безопасного доступа из одного компьютера к другому по сети. У протокола SSH очень много возможностей. Вы можете создавать защищенные соединения между компьютерами, открывать командную строку на удаленном компьютере, запускать графические программы, передавать файлы и организовывать частные сети.

    За поддержку протокола SSH в Linux отвечает набор программного обеспечения OpenSSH. Это открытая реализация этого протокола, которая предоставляет все необходимые возможности. В состав пакета OpenSSH входят утилиты для установки соединения, передачи файлов, а также сам ssh сервер.

    Установка OpenSSH в Ubuntu

    Установить SSH на Ubuntu будет очень просто, программа считается стандартной и используется почти везде. Хотя по умолчанию в дистрибутиве её нет, но зато она есть в официальных репозиториях.

    Поэтому для установки откройте терминал с помощью сочетания клавиш Ctrl+Alt+T и выполните команду:

    sudo apt install openssh-server

    Будет загружено несколько пакетов, а когда установка ssh сервера Ubuntu завершится, программа будет готова к работе. Если вы хотите чтобы служба запускалась автоматически нужно добавить его в автозагрузку. Поэтому чтобы включить SSH в Ubuntu 20.04 выполните:

    sudo systemctl enable sshd

    Если затем вы захотите удалить службу из автозагрузки, используйте команду disable:

    sudo systemctl disable sshd

    Что касается клиента ssh, то он уже установлен в системе по умолчанию. Сейчас вы можете попробовать подключиться к локальному ssh серверу просто набрав:

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

    Точно таким способом вы можете получить ssh доступ ubuntu к любому другому компьютеру из сети. Для этого достаточно указать вместо localhost его ip адрес и имя пользователя в таком формате:

    $ ssh имя_пользователя @ ip_адрес

    Настройка SSH в Ubuntu

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

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

    sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.factory-defaults

    Дальше вы можете перейти к настройке конфигурационного файла:

    sudo vi /etc/ssh/sshd_config

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

    По умолчанию вход от имени суперпользователя включен, рекомендуется отключить такую возможность. Для этого найдите строчку PermitRootLogin и замените ее значение на no:

    Чтобы разрешить аутентификацию по ключу, а не по паролю найдите строку PubkeyAuthentication и убедитесь, что ее значение yes.

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

    sudo systemctl restart ssh

    Более подробно про настройку и использование различных тонкостей ssh рассказано в статье как использовать ssh.

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

    ssh -p 2222 localhost

    К тому же, если на компьютере установлен и настроен брандмауэр, то в нем тоже нужно разрешить доступ к новому порту ssh, для этого выполните:

    sudo ufw allow 2222

    Даже если служба ssh находится на порту по умолчанию, его тоже нужно открыть в брандмауэре если вы собираетесь подключаться к компьютеру через интернет:

    sudo ufw allow 22

    Настройка ssh Ubuntu 20.04 полностью завершена.

    Выводы

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

    На завершение видео, где подробно рассказано о том, что такое SSH:

    Источник

    Читайте также:  Application debugging in linux
  • Оцените статью