- Сервер OpenSSH
- Содержание
- Сервер OpenSSH
- Введение
- Установка
- Конфигурация
- Ключи SSH
- Команда SSH
- Установка клиента OpenSSH
- Установка клиента OpenSSH в Linux
- Установка OpenSSH в Ubuntu и Debian
- Установка OpenSSH на CentOS и Fedora
- Установка клиента OpenSSH в Windows 10
- Установка клиента OpenSSH на macOS
- Как использовать команду ssh
- Файл конфигурации SSH
- Аутентификация открытого ключа
- Перенаправление порта
- Перенаправление локального порта
- Перенаправление удаленного порта
- Динамическая переадресация портов
- Выводы
- linux-notes.org
- Установка и настройка OpenSSH-сервера на Linux
- Особенности OpenSSH
- Установка OpenSSH на RHEL / CentOS 5.x/6.x
- Установка OpenSSH на Fedora 15/16/17/18/19
- Установка OpenSSH на основе Debian / Ubuntu
- Как войти в OpenSSH
- Настройка сервера OpenSSH
- OpenSSH Что это такое, и с чем это едят
- Авторизация по SSH ключу
- Шифрованное копирование файлов
Сервер OpenSSH
Содержание
Сервер OpenSSH
Введение
Эта секция руководства по Ubuntu Server представляет мощную коллекцию инструментов для удаленного контроля и обмена данными с сетевыми компьютерами, названная OpenSSH. Вы также изучите некоторые конфигурационные настройки, доступные для серверного приложения OpenSSH, и то как изменять их на вашей Ubuntu системе.
Серверный компонент OpenSSH, sshd, постоянно ожидает клиентские подключения от любого клиентского приложения. Когда обнаруживается запрос на соединение, sshd устанавливает корректное соединение в зависимости от соединяющегося клиентского приложения. Например, если удаленный компьютер подсоединяется с помощью клиентского приложения ssh, сервер OpenSSH устанавливает сессию удаленного управления после авторизации. Если удаленный пользователь подсоединяется к серверу OpenSSH с помощью scp, сервис OpenSSH на сервере инициирует защищенное копирование файлов между сервером и клиентом после авторизации. OpenSSH может использовать много методов аутентификации, включая простой пароль, открытый ключ и билеты Kerberos.
Установка
Установка клиента и сервера OpenSSH очень простая. Для установки клиентского приложения OpenSSH на вашей системе Ubuntu используйте команду в терминале:
Для установки серверного приложения OpenSSH и связанных файлов используйте такую команду в терминале:
Пакет openssh-server может быть выбран для установки во время процесса установки Ubuntu Server Edition.
Конфигурация
Вы можете настроить поведение по умолчанию серверного приложения OpenSSH, sshd, редактируя файл /etc/ssh/sshd_config. Для информации по конфигурационным директивам, используемым в этом файле, вы можете посмотреть соответствующую страницу руководства, задав следующую команду в терминале:
Существует множество директив в конфигурационном файле sshd, управляющих такими вещами, как настройки соединений и способы авторизации. Далее примеры конфигурационных директив, которые могут быть изменены редактированием файла /etc/ssh/sshd_config.
Скопируйте файл /etc/ssh/sshd_config и защитите его от записи с помощью следующих команд в терминале:
Далее примеры конфигурационных директив, которые вы можете изменить:
Чтобы установить TCP порт прослушивания для вашего OpenSSH 2222 вместо стандартного 22, измените директиву Port таким образом:
Чтобы sshd допускал вход с использованием открытых ключей, просто добавьте или измените строку:
Если строка уже присутствует, убедитесь, что она не закомментирована.
Чтобы позволить вашему OpenSSH серверу показывать содержимое файла /etc/issue.net в качестве шапки пред авторизацией, просто добавьте или измените строку:
Все изменения производятся в файле /etc/ssh/sshd_config.
После изменений в /etc/ssh/sshd_config, сохраните файл и перестартуйте серверное приложение sshd для применения изменний, используя команду в терминале:
Ключи SSH
Для создания ключей введите в терминале клиента:
Это сгенерирует ключи использующие метод цифрового алгоритма подписи (DSA). В процессе у вас спросят пароль. Просто нажмите Enter на запрос о создании ключа. По умолчанию открытый ключ сохраняется в файл
/.ssh/id_dsa.pub, в то время как секретный в
/.ssh/id_dsa. Теперь скопируйте файл id_dsa.pub на удаленный компьютер и добавьте его к
В конце дважды проверьте права доступа файла authorized_keys, чтобы только авторизованные пользователи имели права на чтение и запись. Если права установлены некорректно, измените их:
Теперь у вас есть возможность соединиться по SSH с этим узлом без ввода пароля.
Источник
Команда SSH
Secure Shell (SSH) — это криптографический сетевой протокол, используемый для зашифрованного соединения между клиентом и сервером. Клиент ssh создает безопасное соединение с сервером SSH на удаленном компьютере. Зашифрованное соединение можно использовать для выполнения команд на сервере, туннелирования X11, переадресации портов и т. Д.
Доступен ряд клиентов SSH, как бесплатных, так и коммерческих, причем OpenSSH является наиболее широко используемым клиентом. Он доступен на всех основных платформах, включая Linux, OpenBSD, Windows и macOS.
В этой статье объясняется, как использовать клиент командной строки OpenSSH ( ssh ) для входа на удаленный компьютер и выполнения команд или выполнения других операций.
Установка клиента OpenSSH
Клиентская программа OpenSSH называется ssh и может быть запущена с терминала. Клиентский пакет OpenSSH также предоставляет другие утилиты SSH, такие как scp и sftp , которые устанавливаются вместе с командой ssh .
Установка клиента OpenSSH в Linux
Клиент OpenSSH предустановлен в большинстве дистрибутивов Linux по умолчанию. Если в вашей системе не установлен клиент ssh, вы можете установить его с помощью диспетчера пакетов распространения.
Установка OpenSSH в Ubuntu и Debian
Установка OpenSSH на CentOS и Fedora
Установка клиента OpenSSH в Windows 10
Большинство пользователей Windows используют Putty для подключения к удаленному компьютеру через SSH. Однако последние версии Windows 10 включают клиент и сервер OpenSSH. Оба пакета можно установить через графический интерфейс или PowerShell.
Чтобы узнать точное имя пакета OpenSSH, введите следующую команду:
Команда должна вернуть что-то вроде этого:
Как только вы узнаете имя пакета, установите его, запустив:
В случае успеха результат будет выглядеть примерно так:
Установка клиента OpenSSH на macOS
macOS поставляется с установленным по умолчанию клиентом OpenSSH.
Как использовать команду ssh
Следующие требования должны быть выполнены, чтобы иметь возможность войти на удаленный компьютер через SSH:
- На удаленном компьютере должен быть запущен SSH-сервер.
- Порт SSH должен быть открыт в брандмауэре удаленного компьютера.
- Вы должны знать имя пользователя и пароль удаленной учетной записи. Учетная запись должна иметь соответствующие права для удаленного входа в систему.
Основной синтаксис команды ssh следующий:
Чтобы использовать команду ssh , откройте свой терминал или PowerShell и введите ssh а затем имя удаленного хоста:
При первом подключении к удаленному компьютеру через SSH вы увидите сообщение, подобное приведенному ниже.
У каждого хоста есть уникальный отпечаток, который хранится в файле
Введите yes чтобы сохранить удаленный отпечаток пальца, и вам будет предложено ввести пароль.
После ввода пароля вы войдете в удаленную машину.
Если имя пользователя не указано, команда ssh использует текущее имя для входа в систему.
Чтобы войти в систему как другой пользователь, укажите имя пользователя и хост в следующем формате:
Имя пользователя также можно указать с помощью опции -l :
По умолчанию, когда порт не указан, клиент SSH будет пытаться подключиться к удаленному серверу через порт 22. На некоторых серверах администраторы изменяют порт SSH по умолчанию, чтобы добавить дополнительный уровень безопасности к серверу, уменьшая риск автоматические атаки.
Чтобы подключиться к порту, -p от порта по умолчанию, используйте параметр -p чтобы указать порт:
Если у вас возникли проблемы с аутентификацией или подключением, используйте параметр -v чтобы указать ssh печатать отладочные сообщения:
Чтобы повысить уровень детализации, используйте -vv или -vvv .
Команда ssh принимает ряд параметров.
Для получения полного списка всех параметров прочтите страницу руководства по ssh , набрав в терминале man ssh .
Файл конфигурации SSH
Если вы подключаетесь к нескольким удаленным системам через SSH на ежедневной основе, вы обнаружите, что запоминание всех удаленных IP-адресов, различных имен пользователей, нестандартных портов и различных параметров командной строки является трудным, если не невозможным.
Клиент OpenSSH считывает параметры, заданные в файле конфигурации для каждого пользователя (
/.ssh/config ). В этом файле вы можете хранить различные параметры SSH для каждой удаленной машины, к которой вы подключаетесь.
Пример конфигурации SSH показан ниже:
Когда вы вызываете ssh-клиент, набирая ssh dev , команда считывает файл
/.ssh/config и использует данные соединения, указанные для хоста dev. В этом примере ssh dev эквивалентен следующему:
Дополнительные сведения см. В статье о файле конфигурации SSH .
Аутентификация открытого ключа
Протокол SSH поддерживает различные механизмы аутентификации.
Механизм аутентификации на основе открытого ключа позволяет вам войти на удаленный сервер, не вводя пароль .
Этот метод работает путем создания пары криптографических ключей, которые используются для аутентификации. Закрытый ключ хранится на клиентском устройстве, а открытый ключ передается на каждый удаленный сервер, на который вы хотите войти. Удаленный сервер должен быть настроен на прием аутентификации по ключу.
Если у вас еще нет пары ключей SSH на вашем локальном компьютере, вы можете создать ее, набрав:
Вам будет предложено ввести безопасную парольную фразу. Если вы хотите использовать кодовую фразу, решать вам.
Когда у вас есть пара ключей, скопируйте открытый ключ на удаленный сервер:
Введите пароль удаленного пользователя, и открытый ключ будет добавлен в файл authorized_keys удаленного пользователя.
После загрузки ключа вы можете войти на удаленный сервер без запроса пароля.
Установив аутентификацию на основе ключей, вы можете упростить процесс входа в систему и повысить общую безопасность сервера.
Перенаправление порта
SSH-туннелирование или перенаправление портов SSH — это метод создания зашифрованного SSH-соединения между клиентом и сервером, через которое могут ретранслироваться порты служб.
Перенаправление SSH полезно для передачи сетевых данных служб, использующих незашифрованный протокол, например VNC или FTP, доступа к контенту с географическим ограничением или обхода промежуточных межсетевых экранов. По сути, вы можете перенаправить любой TCP-порт и туннелировать трафик через безопасное соединение SSH.
Существует три типа переадресации портов SSH:
Перенаправление локального порта
Перенаправление локального порта позволяет вам перенаправить соединение с клиентского хоста на хост-сервер SSH, а затем на порт хоста назначения.
Чтобы создать переадресацию локального порта, передайте параметр -L клиенту ssh :
Параметр -f указывает команде ssh работать в фоновом режиме, а -N не выполнять удаленную команду.
Перенаправление удаленного порта
Перенаправление удаленного порта противоположно перенаправлению локального порта. Он перенаправляет порт с хоста сервера на хост клиента, а затем на порт хоста назначения.
Параметр -L указывает ssh создать переадресацию удаленного порта:
Динамическая переадресация портов
Динамическая переадресация портов создает прокси-сервер SOCKS, который обеспечивает связь через диапазон портов.
Чтобы создать динамическую переадресацию портов (SOCKS), передайте параметр -D клиенту ssh:
Более подробную информацию и пошаговую инструкцию смотрите в статье Как настроить SSH-туннелирование (перенаправление портов) .
Выводы
Чтобы подключиться к удаленному серверу через SSH, используйте команду ssh за которой следует имя удаленного пользователя и имя хоста ( ssh username@hostname ).
Знание того, как использовать команду ssh необходимо для управления удаленными серверами.
Если у вас есть вопросы, оставьте комментарий ниже.
Источник
linux-notes.org
Установка и настройка OpenSSH-сервера на Linux
Secure Shell (SSH) является сетевым протоколом обеспечения оболочки услуги на удаленной машине по защищенному каналу. OpenSSH является реализацией с открытым исходным кодом протокола SSH, позволяя зашифровать сообщения по сети через набор программного обеспечения.
OpenSSH разработан группой открытого BSD и он выпущен под упрощенное лицензии BSD.
Особенности OpenSSH
1. Open Source проект ;
2. Бесплатная лицензирование;
3. Очень хорошее шифрование (3DES, Blowfish, AES, Arcfour);
4. X11 Forwarding (шифрование X Window System трафика);
5. Перенаправление портов (зашифрованные каналы для традиционных протоколов);
6. Сильная аутентификация (Public Key, Одноразовый пароль и Проверка подлинности Kerberos);
7. Экспедитор (Single-Sign-On);
8. Взаимодействие (Соблюдение SSH 1.3, 1.5 и стандартов протоколов 2,0);
9. SFTP клиент и сервер поддерживают в обоих протоколов SSH1 и SSH2;
10. Сжатие данных.
Установка OpenSSH на RHEL / CentOS 5.x/6.x
Чтобы установить OpenSSH и автоматически включить OpenSSH сервер на CentOS или RHEL необходимо выполнить следующую команду:
Запускаем ssh демон:
Добавим сервис в автозапуск системы (не нужно запускать каждый раз при старте вашей ОС):
Установка OpenSSH на Fedora 15/16/17/18/19
Чтобы установить OpenSSH и автоматически включить OpenSSH сервер на Fedora 15/16/17/18/19 необходимо выполнить следующую команду:
Запустим ssh-демон для работы:
Добавим, по желанию в автозагрузку нашей ОС:
Установка OpenSSH на основе Debian / Ubuntu
Чтобы установить OpenSSH и автоматически включить OpenSSH сервер на основе Debian / Ubuntu, необходимо выполнить следующую команду:
Как войти в OpenSSH
Для входа в систему с Unix-подобной машины, нужно зайти в терминал и в командной строке и ввести:
Настройка сервера OpenSSH
Если вы хотели бы настроить OpenSSH сервер то нужно отредактировать файл конфигурации OpenSSH /etc/ssh/sshd_config .
Есть несколько вариантов, OpenSSH вы можете быть заинтересованы в:
Порт 22 (Port 22).
По умолчанию SSHD прослушивает порт 22 для прослушивания входящих соединений SSH. Изменяя SSH порт по умолчанию, вы можете быть в состоянии предотвратить различные автоматизированные атаки от хакеров.
PermitRootLogin no
Опция PermitRootLogin говорит, может ли суперпользователь войти в систему через SSH.
AllowUsers user1 user2
С помощью опции AllowUsers можно выборочно отключить SSH сервис для конкретных пользователей Linux. Можно указать несколько пользователей, разделенных пробелами.
После изменения /etc/ssh/sshd_config, необходимо перезагрузить SSH сервис.
Чтобы перезапустить OpenSSH на Ubuntu или Debian:
Чтобы перезапустить OpenSSH на CentOS, Fedora или RHEL:
Установка и настройка OpenSSH-сервера на Linux завершена. Если нужно помочь, пишите мне ниже в комментарии и я вам помогу.
Источник
OpenSSH Что это такое, и с чем это едят
В данной статье я хотел бы рассмотреть продвинутые функции OpenSSH. Мы рассмотрим как теоретическую часть, так и практическую. Зачем.
На одном из моих серверов, в логах я заметил не очень позитивную активность, а именно китайцев, которые перебирали пароли, пытаясь авторизоваться под «админом», «рутом» и прочими логинами. Ок, я бы понял, если бы у меня был бы стандартный порт, но порт у меня был не стандартный, сервер вообще был в качестве тестовой среды и, короче, было странно, я заблокировал пол Китая и забил.
Далее меня откровенно стала надоедать необходимость постоянно вводить пароль для авторизации на серверах. Не, ну а если у меня двадцать серверов — нужно знать двадцать паролей, причем разных, потому что ставить один и тот же пароль на весь зоопарк глупо.
Авторизация по SSH ключу
Собственно в OpenSSH есть такая интересная возможность, как авторизация по ключам. Для корректной работы этого метода используется два ключа, открытый (который publik_key) и закрытый (privat_key соответственно). Открытый ключ должен находится в домашней каталоге пользователя, на сервере, на который мы будем заходить, а закрытый ключ должен обитать в домашнем каталоге пользователя, на ноутбуке (или ПК, смартфоне, телефоне, холодильнике, космическом шатле и т.д.) с которого мы будем ломиться на сервер. Далее, при авторизации, грубо говоря, эти ключи сравниваются, клиент авторизуется на сервер, сервер авторизуется у клиента, и клиент попадает на сервер. Само преимущество этого метода заключается в том, что его нельзя украсть, так как при авторизации ключ не передается на сервер, а только доказывает серверу, что у него есть этот ключ.
Ну если, username, мы смогли тебя убедить в том, что это необходимо, то начнем с генерации ключа. Заходим на наш сервер и генерируем ключ из под обычного пользователя (не root):
Далее в ответ «генератор» задаст нам несколько вопросов:
- Enter file in which to save the key (/home/wtf/.ssh/id_rsa) — или введите имя ключа, можно указав путь. Ну например введем maxidrom.net-rsa;
- Enter passphrase (empty for no passphrase): — или введите пароль для сертификата.. Ну я параноик, я ввел.. (Но вы можете оставить его пустым, если не хотите его вводить каждый раз, когда используете ключ)
- Enter same passphrase again: — и повторил.. (аналогично, если не вводили — оставьте пустым)
На этом вопросы заканчиваются, а ключи генерируются. Кстати, непонимающие «гуглочитатели» могут задать вопрос, почему я ввел ключ rsa, а не dsa? Все просто, dsa используется только для цифровой подписи, и не используется для шифрования. Так что смело вводите rsa.
В папке, в которой вы находитесь (или той,которую могли указать) вы найдете два файла, по названиям которых вы поймёте сто там публичное, а что там приватное.
Теперь, установим ключ на сервере:
и настроим openssh сервер, чтобы тот не просил логин и пароль, но мог авторизоваться по ключу. Для этого, уже под root пользователем или при помощи sudo, откроем файл конфигурации openssh любимым редактором:
приведем некоторые параметры к подобному виду:
и перезапустим службу openssh:
Но с сервера пока не выходите, особенно если он далеко от вас..
Теперь займемся настройками ноутбука, с которого вы будите ломиться на сервер.
Для этого скопируем файл закрытого ключа с сервера при помощи такой прекрасной утилиты, как scp:
и добавим ключ для своего ssh клиента:
Все, на это по идее можно закончить настройку авторизации, и авторизовываться на сервере можно таким образом:
Но мне это не особо удобно. Что я имею в виду? Например мы можем авторизовываться на сервер набрав в терминале
Для этого достаточно в файл
/.ssh/config добавить эти строки:
Это называется Алиасом. Подробно ознакомиться с ключами вы можете на OpenNet.ru или набрав команду man ssh_config.
И еще, если вы собираетесь заходить на серверы с операционной системы Windows при помощи Putty, то вам понадобится утилита PuttyGen.
Шифрованное копирование файлов
Да, что то я ранее упоминал про такую штуку, как scp. Это не то, что вы, возможно, прочли на лурке, а это протокол RCP копирования файлов, использующий в качестве транспорта не RSH, а SSH.
При помощи этого протокола вы сможете копировать файл site1.zip на сервер со своего компьютера, в папку
/my_sites вот такой командой:
Можно скопировать файл sites22.zip с сервера на свой ноутбук в папку sites вот такой командой:
При копировании директории важно указать ключ -r, как в этой команде:
А если, вдруг, ваш ssh работает на другом порту, то делаем копирование вот такой командой:
Ну а в нашем случае, при настроенном алиасе в файле
/.ssh/config, скопировать файл мы сможем такой командой:
Удобненько, не правда ли?
На этом, пожалуй, обзор команд я закончу. Этого много есть в интернете, но и пусть будет в моем блоге.
В написании этого шедевра мне помогли следующие ресурсы:
Источник