- Как подключиться по SSH из Linux
- Проверка наличия утилиты и установка OpenSSH
- Как подключиться по SSH с помощью пароля
- Как отключиться от севера и прервать SSH сессию
- Как подключиться по SSH с помощью ключа
- Генерация (создание) SSH-ключа
- Добавление ключа в список доверенных на сервере
- Подключение к серверу по ключу
- Как ограничить подключение по паролю
- Как мне выйти из SSH-соединения?
- Escape-символ SSH и последовательность отключения
- Другие последовательности побега
- Как выйти из SSH-соединения?
- 8 ответов
- Символ SSH Escape и последовательность разъединения
- Другие escape-последовательности
Как подключиться по 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-соединения?
Я подключаюсь к серверу через SSH, чтобы отправить сообщение серверу сокетов с помощью команды вроде:
После того, как соединение установлено, и я пишу сообщение и отправляю его, я не могу выйти из текстового режима. Мне только разрешено вводить больше текста и все.
Есть ли команда или комбинация клавиш, которая позволяет мне вернуться в командный режим?
Как мне выйти из SSH-соединения?
- закрытие сеанса оболочки, например, с exit последующим Enter , или Ctrl — d обычно позволяет вам ssh нормально выйти из сеанса,
- в случае, если у вас плохое соединение и оболочка не отвечает, нажмите Enter клавишу, затем введите
. и ssh должен немедленно закрыться и вернуть вас в командную строку.
Первый вариант должен быть интуитивно понятным, но как мы узнаем последний вариант?
Мы могли бы узнать эту информацию из внимательного прочтения справочной страницы.
дает нам документацию по SSH , в которой есть следующий раздел о escape-символах:
Краткий ответ: Тип exit
Если это не сработает, однако .
Escape-символ SSH и последовательность отключения
В большинстве реализаций SSH для интерактивных сессий используется escape-символ, аналогичный Ctrl-] комбинации telnet . Экранирующий символ SSH по умолчанию
вводится в начале строки.
Если вы хотите прекратить интерактивный сеанс OpenSSH, который застрял и не может быть завершен путем входа exit или Ctrl D в оболочку на удаленной стороне , вы можете ввести,
за которым следует точка . . Чтобы быть уверенным, что необходимо вводить escape-символ в начале строки ввода, сначала нужно нажать Enter. Таким образом, следующая последовательность завершит сеанс SSH в большинстве случаев:
Другие последовательности побега
Например, OpenSSH предлагает другие escape-последовательности
? во время сеанса должен дать вам список. Некоторые примеры:
затем Ctrl-Z приостанавливает сессию,
& помещает это непосредственно в фон,
# дает список переадресованных соединений в этом сеансе.
Если вы хотите , чтобы просто ввести тильду в начале строки, вы должны удвоить его:
Экранирующий символ можно изменить с помощью параметра командной строки -e . Если вы установите специальное значение -e none , экранирование будет отключено, и сеанс будет полностью прозрачным.
Источник
Как выйти из SSH-соединения?
Я подключаюсь к серверу через SSH для отправки сообщения на сервер сокетов с помощью команды типа:
После того, как соединение установлено, и я напишу сообщение и отправлю его, я не могу выйти из текстового режима. Мне разрешено вводить больше текста, и это возможно.
Есть ли команда или комбинация клавиш, которая позволяет мне вернуться в командный режим?
8 ответов
Как выйти из SSH-соединения?
- закрытие сеанса оболочки, например. с exit , а затем Enter или Ctrl — d обычно позволяет выйти из ssh обычно,
- в случае, если у вас плохое соединение, и оболочка не отвечает, нажмите клавишу Enter , затем введите
. и ssh должен немедленно закрыть и вернуть вас в командной строке.
Первый вариант должен быть интуитивным, но как узнать последний вариант?
Мы могли бы изучить эту информацию, внимательно прочитав страницу руководства.
дает нам документацию по SSH , в которой содержится следующий раздел о escape-символах:
Короткий ответ: Введите exit
Если это не работает, однако .
Символ SSH Escape и последовательность разъединения
Большинство реализаций SSH реализуют escape-символ для интерактивных сеансов, аналогичный комбинации telnet Ctrl-] . Эквивалентный символ SSH по умолчанию —
, введенный в начале строки.
Если вы хотите завершить интерактивный сеанс OpenSSH , который застрял и не может быть завершен, введя exit или Ctrl D в оболочку на удаленной стороне , вы можете ввести
, а затем dot . . Чтобы ввести escape-символ в начале строки ввода, сначала необходимо нажать Enter. Таким образом, следующая последовательность в большинстве случаев прекратит сеанс SSH:
Другие escape-последовательности
OpenSSH, например, предлагает другие escape-последовательности помимо
? во время сеанса должен предоставить вам список. Некоторые примеры:
follow Ctrl-Z приостанавливает сеанс,
& помещает его прямо в фоновый режим,
# предоставляет список переадресованных соединений в этом сеансе.
Если вы хотите просто ввести тильду в начале строки, вам нужно удвоить ее:
Эквивалентный символ можно изменить с помощью опции командной строки -e . Если вы установите специальное значение -e none , экранирование будет отключено и сеанс будет полностью прозрачным.
Вы хотите выйти из оболочки SSH?
Вы можете ввести exit и нажать Enter или использовать Ctrl + D
Просто введите exit или logout (тогда нажмите Enter, конечно), оба будут работать.
Вы можете написать logout в строке консоли (и нажмите Enter , конечно).
Я вижу, что вопрос адекватно ответил, но я хотел бы добавить, что вижу, что вы подключаетесь к этому серверу через ssh на порту 5566. Я читаю один раз на этот сайт , сообщающий через SSH о непривилегированных порты (все выше 1023) небезопасны.
Когда вы регистрируетесь в системе как пользователь без полномочий root (кто-то не является uid 0), вы не можете создать список TCP или UDP-портов ниже 1024. Это связано с тем, что номера портов ниже 1024 являются так называемыми привилегированные порты и могут открываться только root или процессы, выполняемые как root. Например, когда ваш веб-сервер (apache, nginx и т. Д.) Запустится, он сделает это как привилегированный пользователь root, чтобы открыть прослушивающее соединение с портом 80 (порт, который по умолчанию будет использоваться для HTTP-трафика). Теперь, как только порт будет открыт, и все, что нужно сделать с правами root, будет выполнено, веб-сервер вернется к не-привилегированному пользователю (либо www-data, apache, либо никому). С этого момента, когда происходит что-то плохое, оно ограничено только правами, которые имеет этот пользователь. Теперь вернемся к SSH: когда мы запускаем SSH на порте 22, мы знаем, что это делается с помощью корневого или корневого процесса, поскольку никакой другой пользователь не может открыть этот порт. Но что произойдет, когда мы переместим SSH на порт 2222? Этот порт можно открыть без привилегированной учетной записи, что означает, что я могу написать простой скрипт, который прослушивает порт 2222 и имитирует SSH, чтобы захватить ваши пароли.
Поэтому, когда я сам меняю порт, я всегда использую порт ниже 1024, который еще не используется другим стандартным программным обеспечением. Для этого есть хороший список Wikipedia .
Автор статьи также считает, что изменение порта SSH не должно быть сделано вообще по соображениям совместимости.
Другая проблема: у многих корпораций есть входящие и исходящие брандмауэры, то есть вы не можете перейти на какой-либо сайт к произвольному порту и ожидать, что он будет работать. Некоторые защищенные порты, такие как порт 22, часто освобождаются от этого, в то время как другие порты, такие как порт 25 или 110, блокируются.
Я лично считаю, что есть случаи, когда это пригодится. Например, когда вы или небольшая группа людей являются единственными, кто подключается к серверу через SSH, вы регистрируете автоматические атаки с использованием грубой силы, и вы хотите, чтобы журнал был чистым.
Это поддерживаемые символы, которые предоставляют различные варианты, с которыми вы можете играть с помощью ssh.
(Обратите внимание, что escape-коды распознаются только сразу после новой строки.) Вы можете закрыть список последовательностей Escape, нажав Enter .
MacOS : когда ssh зависает, используйте следующую последовательность:
Источник