- Как подключиться по SSH из Linux
- Проверка наличия утилиты и установка OpenSSH
- Как подключиться по SSH с помощью пароля
- Как отключиться от севера и прервать SSH сессию
- Как подключиться по SSH с помощью ключа
- Генерация (создание) SSH-ключа
- Добавление ключа в список доверенных на сервере
- Подключение к серверу по ключу
- Как ограничить подключение по паролю
- Команда ssh Linux подключение и настройка
- Синтаксис
- Настройка
- Строка Port
- Строка — Protocol 2,1
- Запрет входа root через ssh
- Вход только одному пользователю
- Примеры
Как подключиться по SSH из Linux
Для удаленного подключения к серверу есть много способов, но самый популярный и простой среди них это защищенный сетевой протокол SSH (Secure Shell) с помощью утилиты OpenSSH. По-умолчанию утилита дает доступ только к командной строке удаленного севера, но при желании можно запустить программы с графический интерфейсом прямо с сервера. Если вы хотите ознакомиться с полным списком команд утилиты, то это можно сделать здесь. В этой статье мы разберем как подключиться по SSH и самые основные команды, которые требуются чаще всего.
Проверка наличия утилиты и установка OpenSSH
Как правило, во многих дистрибутивах Linux утилита OpenSSH уже установлена по-умолчанию, но конечно же есть исключения. Для проверки наличия утилиты нужно ввести в терминал коротую команду:
И если вывод будет содержать возможные опции использования в примерно таком виде, значит OpenSSH установлен:
Если же вывод содержит сообщение, что команда не найдена, то нужно установить openssh-client .
Если у вас Debian или Ubuntu, то для установки введите:
Если у вас CentOS или Fedora, то введите
Как подключиться по SSH с помощью пароля
Обычное подключение по SSH без дополнительных опций выглядит очень просто. Достаточно ввести логин, IP сервера и пароль. Допустим хостинг-провайдер нам выдал следующие данные после покупки сервера:
- IP-адрес сервера: 80.90.255.255
- Логин: root
- Пароль: xvFkWsIys
Исходя из этого мы формулируем команду в следующем виде ssh логин@IP-адрес:
Если подключение осуществляется впервые, то утилита задаст вопрос, стоит ли добавлять в список доверенных хостов. Соглашаемся, набрав yes и нажав Enter.
Далее утилита запросит пароль пользователя
Его можно ввести вручную или вставить из буфера обмена. При вводе пароля не будут появляться звездочки или какие-либо условные символы, это нормально. После ввода пароля вы попадаете в командную строку сервера, к которому подключались. Это значит, что теперь все введенные команды будут выполнятся именно на сервере.
Как отключиться от севера и прервать SSH сессию
Отключиться от сервера можно двумя простыми способами. Первый это ввести команду exit :
Также можно нажать комбинацию клавиш Ctrl + D, что также прервет SSH сессию и вернет нас туда, откуда мы подключались.
Как подключиться по SSH с помощью ключа
Выше мы разобрали простое подключение по паролю, но гораздо безопаснее подключаться, используя ключ. В этом случае нужно вводить пароль от ключа, а не юзера сервера. Возможно даже вообще не вводить никаких паролей, а использовать только файл-ключ, что является очень удобным и относительно безопасным. Но обо всем по порядку.
Генерация (создание) SSH-ключа
Для начала нужно создать SSH-ключ на той машине, с которой будем подключаться к серверу, то есть ключ создается на стороне клиента, для этого не нужно заходить на сервер.
Чтобы создать ключ, нужно ввести команду ssh-keygen -f /папка/где/создать/ключ . В примере мы будем использовать самую распространенную папку для ключей, которая находится в домашней папке пользователя: /home/имя_пользователя/.ssh/название_ключа или ее укороченной версией
После ввода утилита попросит задать пароль для ключа. Здесь довольно важный момент. Можно вовсе не задавать пароль и просто нажать Enter. В таком случае подключение к серверу будет осуществляться только по ключу и без всякого ввода пароля.
Но в примере мы будем «параноиками» и зададим пароль на использование ключа. Придумаем именно отдельный пароль, не тот, что от пользователя сервера. Можно выбрать вариант проще, который возможно будет без труда запомнить и ввести вручную, например brandy-coin-13! . Его мы будем в будущем вводить каждый раз, как потребуется использовать ключ. И так, задаем…
После этого нас попросят ввести пароль еще раз, повторяем его и если вы правильно ввели путь до папки для ключа, то должен получиться примерно такой вывод:
В выводе строка с текстом Your identification has been saved in говорит в какой именно папке сохранился ключ.
Добавление ключа в список доверенных на сервере
В предыдущем этапе мы только создали ключ. Пока он не подходит ни к одному серверу. Чтобы использовать его для входа на наш сервер, необходимо добавить его в список доверенных ключей на этом сервере. Звучит сложно, но на самом деле все обходится лишь одной командой, которая содержит путь до ключа, логин и IP-адрес сервера в своих опциях и имеет такой вид: ssh-copy-id -i /путь/до/ключа логин@IP-адрес .
После ввода команды потребуется разово ввести пароль от сервера, после чего ключ будет авторизован на сервере.
Подключение к серверу по ключу
Теперь можно подключаться к серверу, используя ключ. Для этого вводим команду, которая содержит логин, IP-адрес сервера и путь до ключа с опцией -i: ssh логин@IP-адрес -i /путь/до/ключа
После ввода потребуется ввести пароль от ключа, который мы задавали в прошлом разделе. Если вы тогда просто нажали Enter, ничего не вводили, то вас сразу перекинет на север, без запроса пароля.
Как ограничить подключение по паролю
Если ограничить подключение по паролю, то использование утилиты OpenSSH будет более безопасным, потому что даже если украдут ваш пароль, то он будет практически бесполезным, потому что зайти на сервер по SSH, используя его, будет уже невозможным.
Для выставления ограничений необходимо иметь права администратора, вы должны быть авторизованным под root или использовать sudo перед каждой командой. В примерах будет использоваться вариант без sudo , чтобы не было расхождений с предыдущими примерами.
Для начала зайдем на сервер по ключу:
Используя консольный текстовый редактор nano, откроем под root файл настроек OpenSSH:
После чего мы увидим содержимое файла настроек. Нам нужно найти строчку:
Убрать # в начале и заменить yes на no . То есть ее надо преобразить вот в такой вид:
Далее нажимаем сначала Ctrl + O , затем Enter, чтобы сохранить. И Ctrl + X, чтобы выйти.
Теперь, чтобы эти настройки вступили в силу, нужно перезапустить службу SSH. Для этого необходимо ввести следующую команду.
Теперь выйдем с сервера и вернемся туда, откуда подключались.
И попробуем обратно подключиться к северу по паролю.
И видим, что сервер нас больше таким способом пускать не намерен. А теперь попробуем с помощью ключа.
На этом настройка завершена, ключ не теряйте, а если потеряете, то пишите хостинг-провайдеру, чтобы он дал вам доступ по VNC, с помощью которого вы сможете включить вход по паролю обратно.
Чтобы сервер был в безопасности, советую настроить на нем фаервол и добавить порт SSH в список доверенных.
Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.
Источник
Команда ssh Linux подключение и настройка
ssh ( Secure Shell — «безопасная оболочка») – это протокол прикладного уровня в операционной системе «Линукс», который обеспечивает удаленный доступ управления персональным компьютером. Чаще всего такой протокол используется при удаленном управлении серверами с помощью терминала.
Если вы являетесь администратором на нескольких серверах, обладаете обширными знаниями в области веб-программирования, команда SSH должна быть знакома. Для осуществления поставленных задач в системе «Линукс» применяется сервер, установленный на машине, и клиент, из которого к ней подключаются.
Утилита ssh отличается широким функционалом, дает пользователю большие возможности. С помощью утилиты можно подключиться к серверу, а также передавать файлы, выполнять скрипты удаленным способом, управлять сервером без предварительного ввода пароля.
Синтаксис
Рассмотрим синтаксис команды.
ssh [опция] [пользователь]@[название хоста] [команда]
Стоит отметить, что утилита ssh способна работать с помощью двух версий протокола, они так и называются протокол 1 и протокол 2. Второй вариант является наилучшим, так как поддерживает значительно больше способов шифрования, а также аутентификаций. Именно поэтому протокол 2 применяется пользователями чаще всего.
- «g» — для разрешения удаленной машине пользоваться определенным локальным портом.
- «l» — для изменения/введения имя пользователя в определенной системе.
- «f» — аргумент переводит режим работы в фоновый.
- «n» — для перенаправления классического вывода.
- «p» — для изменения/введения данных о локальном порту SSH, используемом на удаленной машине.
- «q» — для исключения вероятности показа сообщений о возникающих ошибках.
- «v» — для включения специального режима отладки.
- «x» — для отключения перенаправления X11.
- «X» — для включения перенаправления Х11.
- «C» — для включения сжатия.
Представленный выше список является неполным. На самом деле команда ssh поддерживает в разы больше опций, а описанные варианты используются чаще всего. Стоит заметить, что большинство настроек можно водить с использованием файла «ssh/config».
Настройка
Для осуществления поставленной перед пользователем задачи первоначально требуется обратиться к файлу «/etc/ssh/sshd_config». Здесь имеется множество настроек, большинство из которых применяются редко. Именно поэтому рекомендуется рассмотреть те, которые пользователи вводят чаще всего.
Строка Port
Утилита работает согласно стандартным установкам на основе порта 22. Это поведение не является безопасным, так как мошенникам известен этот порт. Они могут организовать атаку Bruteforce, чтобы перебить имеющийся пароль. Требуемый порт задается с помощью строки «Port 22». Потребуется в обязательном порядке изменить показатели порта на необходимые вам данные.
Строка — Protocol 2,1
На сервере команда ssh согласно стандартным установкам используются две версии протоколов. Они предназначены для совмещения. К примеру, если потребуется использование только второго протокола, потребуется раскомментировать (удалить #) строку «Protocol 2,1» и убрать цифру 1.
Запрет входа root через ssh
В команде ssh согласно стандартным установкам разрешается Root-доступ. Данное поведение также небезопасно. Именно поэтому пользователю потребуется обязательно раскомментировать строку:
Если в конфиге нет строчки PermitRootLogin no, необходимо довать ее в конец файла.
Вход только одному пользователю
В файле конфигурации sshd_config можно добавить две директивы:
Они позволяют разрешить пользоваться ssh только конкретным пользователям или группам.
AllowUsers имя пользователя1, имя пользователя2
AllowGroups группа1, группа2
Особенности выполнения приложений Х11
Не каждый современный пользователь знает, что утилиту SSH можно применить для полноценного запуска приложений Х11. Чтобы появилась возможность использования такой функции, потребуется разрешить ее со стороны сервера. Для этих целей необходимо ввести:
Для вступления изменений, внесенных в утилиту ssh, необходим обязательный перезапуск сервиса. Для этого потребуется ввести специальную команду:
service sshd restart
Или можно перезагрузить всю машину:
Примеры
Существует большое количество методов использования утилиты. Большинство из них неизвестны современному пользователю операционной системы Линукс.
Рассмотрим подключение к серверу.
При присоединении с использованием утилиты в командной строке потребуется ввести:
Например, нам надо подключиться к компьютеру в локальной сети debian, под пользователем slon.
ВАЖНО! Вместо доменного имени компьютера в сети можно написать IP-адрес.
Все современные пользователи первоначально присоединяются к удаленной хосту (компьютеру). Только после этого они вводят требуемые команды. Утилита ssh дает возможность выполнить необходимую задачу без обязательного запуска терминала на удаленной машине.
Предположим нам надо запустить команду top на удаленном компьютере.
ssh slon@debian top
К примеру, требуется запустить скрипт bash на удаленном компьютере. Сам файл bash.sh находится на локальном компьютере . Для этих целей необходимо провести перенаправление ввода bash.
ssh slon@debian ‘bash -s’
С использованием утилиты пользователю предоставляется возможность сохранить бекап локального диска на удаленной серверной машине. Для этих целей нужно перенаправлять вывод dd с использованием оператора перенаправления. Далее вывод dd сохраняется в файле copiadiska.img.
sudo dd if=/dev/sdb | ssh slon@192.168.1.7 ‘dd of=copiadiska.img’
Для восстановления прежнего состояния локального диска используется созданная ранее копия. Для этого в командной строке нужно ввести:
ssh slon@192.168.1.7 ‘dd if=copiadiska.img’ | dd of=/dev/sdb»
Стоит отметить, что в данном случае «/dev/sdb» — это название вашего жесткого диска.
При использовании команды ssh для входа в удаленный сервер нередко требуется пароль. Это создает дополнительные неудобства, но дает возможность обезопасить вас от злоумышленников. Несмотря на защиту, пароль можно подобрать.
Наиболее надежным методом аутентификации является использование нескольких ключей RSA. Один из них хранится на ПК, а второй является публичным. Он применяется пользователем при авторизации.
Это поведение весьма просто настроить. Изначально необходимо задать ключ. Для этого потребуется ввести:
ssh-keygen -t rsa
При создании ключа пользователю необходимо ответить на определённый перечень вопросов. Если вы желаете присоединиться к удаленной машине без обязательного введения пароля, в области «Passphare» нужно оставить пустое место.
Далее ключ отправляется на удаленную машину, вводится:
После этого ключ будет сохранен. Если попробовать присоединиться к серверу повторно, вы увидите, что введение пароля уже не требуется.
Стоит отметить, размещать пароли в обыденных текстовых файлах не стоит. Ими могут воспользоваться злоумышленники Но если это потребуется, такой вариант возможен. Чтобы сохранить пароль, необходимо воспользоваться оператором, используемым при перенаправлении Bash. Введите в командной строке:
При запуске команды ssh на экране монитора нередко всплывает приветствие. Допускается его изменение. За такую функцию отвечает специальный файл «/etc/issue». Вам потребуется просто открыть данный файл и указать необходимо приветствие. Для этого вводится команда:
В некоторых случаях пользователю ОС Линукс может потребоваться информация о неудачных попытках подключения к утилите. Вы можете посмотреть IP-адреса, с которых совершалось данное действие.
Все запросы о входах концентрируются в «/var/log/secure».
Чтобы отфильтровывать информацию в терминале по запросу «Failed password» необходимо добавит grep
cat /var/log/secure | grep Failed password
Нередко пользователям требуется запустить определенное приложение с графической оболочкой на удаленном компьютере.
Для осуществления поставленной задачи не нужно использовать VNC, достаточно применить команду ssh. Программа запустится со стороны удаленной машины, пользователю транслируется лишь окно, в котором можно увидеть все, что ему необходимо.
Стоит отметить, что все получаемые данные могут шифроваться. Чтобы такая опция заработала, потребуется включить поддержку со стороны удаленного сервера. Далее выполняется команда, позволяющая загрузить графическую программу. Для этого потребуется ввести в командную строку «ssh -XC user@remotehost «eclipse»».
Нередко при использовании нестабильного соединения с сетью возможно возникновение сбоев в работе утилиты. Если соединение случайным образом было разорвано, потребуется принудительное завершение сессии. Для активации поддержки необходимо добавить в файл:
Теперь можно завершить сессию простой командой:
В завершении можно сказать, что утилита ssh имеет существенно больший функционал, чем это кажется с первого взгляда. Пользоваться такой командой можно как при программировании, так и в повседневной работе.
Источник