Настраиваем ssh на ubuntu
Содержание:
- Подключение к SSH через LAN
- known_hosts
- Конфигурация ssh-сервера
- Синтаксис
- Step 1 — Create the RSA Key Pair
- Создайте SSH-туннель в Linux и macOS
- Работа с командной строкой, горячие клавиши и дополнительные символы
- Применение протокола SSH для копирования файлов
- 4: Ограничение исходящего трафика с помощью списка разрешенных хостов
- Шаг 2 — Внедрение списка разрешенных IP-адресов
- Включение SSH в Ubuntu
- Шаг 3 — Аутентификация на сервере Ubuntu с помощью ключей SSH
- Как пользоваться PuTTY
- Шаг 1 — Создание пары ключей
- WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!
- 2: Отключение слабых шифров OpenSSH
Подключение к SSH через LAN
Чтобы подключиться к вашей машине Ubuntu по локальной сети, вам нужно всего лишь ввести следующую команду:
Измените на фактическое имя пользователя и на IP-адрес компьютера Ubuntu, на котором вы установили SSH.
Если вы не знаете свой IP-адрес, вы можете легко найти его с помощью команды ip :
Как видно из выходных данных, системный IP-адрес .
После того, как вы нашли IP-адрес, войдите на удаленный компьютер, выполнив следующую команду :
Когда вы впервые подключаетесь через SSH, вы увидите примерно следующее сообщение:
Введите и вам будет предложено ввести пароль.
После ввода пароля вы увидите сообщение, подобное приведенному ниже.
Теперь вы вошли в систему на своей машине с Ubuntu.
known_hosts
Список известных хостов находится в файле
known_hosts
Полный путь:
Примеры алгоритмов: ssh-rsa, ssh-dss, ssh-ed25519, ecdsa-sha2-nistp256 …
Пример строки:
|1|abcdef+abcdefghijklmnopqrst=|abcdefghijklmnopqrstuvwxyz1= ssh-rsa abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrst/abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz12345/abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzB1234567
Таким образом
abcdef+abcdefghijklmnopqrst=|abcdefghijklmnopqrstuvwxyz1=
Это хэш от имени сервера.
ssh-rsa
Это алгоритм шифрования
abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrst/abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz12345/abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzB1234567
Это публичный ключ хоста
Конфигурация ssh-сервера
На этом этапе нужно изменить конфигурацию ssh-сервера и заблокировать пользователю доступ к терминалу, но разрешить доступ к передаче файлов. Открываем на редактирование файл конфигурации ssh-сервера и дописываем в конец
$ sudo nano /etc/ssh/sshd_config
# Это только для пользователй группы sftp-group Match Group sftp-group # использовать встроенный sftp-сервер ForceCommand internal-sftp # разрешить аутентификацию по паролю PasswordAuthentication yes # разрешить доступ только к /srv/sftp ChrootDirectory /srv/sftp # запретить все, что не нужно для работы PermitTunnel no AllowAgentForwarding no AllowTcpForwarding no X11Forwarding no
$ sudo systemctl restart sshd.service
С функциональной точки зрения и практически идентичны. Они построены из одного и того же исходного кода и реализуют SFTP-сервер. это отдельный бинарный файл, а это просто ключевое слово конфигурации. При указании будет использован встроенный SFTP-сервер, вместо запуска внешнего SFTP-сервера. В настоящее время является избыточным и сохраняется для обратной совместимости.
#Subsystem sftp /usr/lib/openssh/sftp-server Subsystem sftp internal-sftp
Синтаксис
Рассмотрим синтаксис команды.
Стоит отметить, что утилита 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-доступ. Данное поведение также небезопасно. Именно поэтому пользователю потребуется обязательно раскомментировать строку:
Вход только одному пользователю
В файле конфигурации sshd_config можно добавить две директивы:
- Allowusers;
- AllowGroups.
Они позволяют разрешить пользоваться ssh только конкретным пользователям или группам.
Особенности выполнения приложений Х11
Не каждый современный пользователь знает, что утилиту SSH можно применить для полноценного запуска приложений Х11. Чтобы появилась возможность использования такой функции, потребуется разрешить ее со стороны сервера. Для этих целей необходимо ввести:
Для вступления изменений, внесенных в утилиту ssh, необходим обязательный перезапуск сервиса. Для этого потребуется ввести специальную команду:
Или можно перезагрузить всю машину:
Step 1 — Create the RSA Key Pair
The first step is to create a key pair on the client machine (usually your computer):
By default will create a 2048-bit RSA key pair, which is secure enough for most use cases (you may optionally pass in the flag to create a larger 4096-bit key).
After entering the command, you should see the following output:
Press enter to save the key pair into the subdirectory in your home directory, or specify an alternate path.
If you had previously generated an SSH key pair, you may see the following prompt:
If you choose to overwrite the key on disk, you will not be able to authenticate using the previous key anymore. Be very careful when selecting yes, as this is a destructive process that cannot be reversed.
You should then see the following prompt:
Here you optionally may enter a secure passphrase, which is highly recommended. A passphrase adds an additional layer of security to prevent unauthorized users from logging in. To learn more about security, consult our tutorial on How To Configure SSH Key-Based Authentication on a Linux Server.
You should then see the following output:
You now have a public and private key that you can use to authenticate. The next step is to place the public key on your server so that you can use SSH-key-based authentication to log in.
Создайте SSH-туннель в Linux и macOS
Клиент предустановлен в большинстве систем на базе Linux и Unix.
Если вы используете Linux или macOS в качестве операционной системы, вы можете создать туннель SSH, используя следующую команду:
Используются следующие параметры:
- — Указывает SSH не выполнять удаленную команду.
- — Создает переадресацию локального порта. Локальный порт ( ), то IP — назначения ( ) и удаленный порт ( ) разделены двоеточием ( ).
- — удаленный пользователь SSH и IP-адрес сервера.
- Чтобы запустить команду в фоновом режиме, используйте параметр .
- Если SSH-сервер прослушивает порт, отличный от 22 (по умолчанию), укажите порт с помощью параметра .
После запуска команды вам будет предложено ввести пароль пользователя SSH. После его ввода вы войдете на сервер, и туннель SSH будет установлен. Рекомендуется настроить аутентификацию на основе ключей SSH и подключаться к серверу без ввода пароля.
Теперь вы можете указать клиенту MySQL на локальном компьютере адрес ввести учетные данные для входа в удаленную базу данных и получить доступ к серверу MySQL.
Например, чтобы подключиться к серверу MySQL с помощью клиента из командной строки, вы должны ввести:
Где — это удаленный пользователь MySQL, имеющий права доступа к базе данных.
При появлении запроса введите пароль пользователя MySQL.
Чтобы завершить туннель SSH, введите в консоли, на которой работает клиент ssh.
Работа с командной строкой, горячие клавиши и дополнительные символы
Базовые методы управления текстом в терминале.
clear — удаляет из текущий сессии терминала все ранее выведенные в него данные, содержимое открытых документов и историю использованных команд. Используется, когда нужно четко лицезреть вывод конкретной операции.
history — показывает ранее использованные приложения и инструменты. Без дополнительных аргументов отображает 10 элементов. Но их количество можно изменить вручную, добавив к слову history любое число. history 13, к примеру.
whatis — дает однострочную справку к любой из установленных программ. Принцип работы следующий: вводим слово whatis, а за ним следом название приложения, о котором хотим узнать. Например, чтобы узнать о том, что такое nano, введем в терминал: whatis nano.
man название пакета — открывает документацию к любой из установленных программ. В ней можно посмотреть, какие функции есть у приложения, как им пользоваться, какие могут возникнуть проблемы.
Дополнительные символы
Не совсем команды, но тоже текстовые элементы, причем полезные.
; — разделитель, необходимый, чтобы активировать сразу несколько команд подряд. Это выглядит так: cd ~/Documents; mkdir Novaya_papka; rmdir Staraya-papka. Команды будут выполняться друг за другом независимо от результата выполнения каждой из них.
&& — то же самое, что и ;, но с важным нюансом. Команды, соединенные с помощью &&, будут выполняться друг за другом, только если предыдущая завершилась успешно. Синтаксис аналогичный:
sudo apt-get update && sudo apt-get install wget
| — запускает сразу две команды. Это может быть полезно, когда нужно запросить информацию из какого-нибудь приложения, а потом найти в полученных данных определенную строку, код, слово или иной элемент текста.
~ — сокращение от /home/имя учетной записи/. Часто фигурирует в инструкциях.
Горячие клавиши
Парочка полезных сочетаний клавиш.
Стрелка вверх — показывает предыдущую команду.
Ctrl+C — прерывает запущенный процесс.
Ctrl+A — перемещает курсор в начало строки.
Ctrl+E — перемещает курсор в конец строки.
Применение протокола SSH для копирования файлов
SSH — это целое семейство протоколов, применяемых не только для администрирования серверов, но и, например, для удобного копирования файлов между двумя подключенными к сети компьютерами.
Для Linux-платформы при копировании файлов через SSH используется утилита SCP (secure copy).
Утилита scp запросит пароль пользователя и затем выполнит копирование:
Для Windows платформы используется протокол SFTP (Secure FTP), разработанный как замена обычного FTP.
Поддержка SFTP есть в популярном клиенте Filezilla. Для соединения необходимо знать имя пользователя и его пароль на удаленном сервере.
1. Чтобы указать использование протокола SFTP, в Filezilla перед адресом удаленного сервера в соответствующем поле добавьте префикс “sftp://”:
2. После установки соединения по протоколу SFTP работа с файлами и каталогами на удаленном сервере в Filezilla происходит точно так же, как при использовании обычного FTP.
4: Ограничение исходящего трафика с помощью списка разрешенных хостов
В последнем разделе этого мануала мы настроим список разрешений (allowlist), который ограничит хосты, к которым может подключаться ваш SSH-клиент. Это особенно полезно для многопользовательских систем, а также для инсталляционных серверов.
Этот уровень безопасности специально разработан для защиты от человеческого фактора – таких ошибок, как неправильный ввод адресов или имен хостов. Пользователь может легко обойти его, отредактировав свой локальный конфигурационный файл, и поэтому этот уровень не предназначен для защиты от злоумышленников.
Если вы хотите ограничить исходящие соединения на сетевом уровне, вы должны использовать для этого брандмауэр. Данная тема выходит за рамки нашего руководства.
Однако если вы хотите настроить несколько дополнительных средств защиты от сбоев, этот уровень безопасности может быть вам полезен.
Он работает на основе правил подстановки, которые хранятся в конфигурации вашего SSH-клиента, и обнуляет маршрутизацию всех исходящих подключений, кроме определенных адресов или хостов.
Следовательно, если вы когда-либо допустите ошибку в адресе сервера или попытаетесь подключиться к серверу, к которому не должны подключаться, запрос будет немедленно сброшен, что даст вам возможность обнаружить свою ошибку исправить ее.
Вы можете применить это либо на системном уровне (/etc/ssh/ssh_config), либо локально (~/.ssh/config). В этом примере мы будем использовать локальный конфигурационный файл.
Откройте или создайте файл, если он еще не существует:
В конец файла добавьте следующий блок, подставив в него список ваших доверенных IP-адресов и имен хостов:
Вы должны поставить перед IP-адресами или именами хостов восклицательный знак (!). Все элементы в списке нужно указывать через запятую. Последним элементом списка должна быть одна звездочка (*) без восклицательного знака.
Если на вашем компьютере также запущен SSH-сервер, вы можете использовать другое имя хоста вместо localhost, поскольку это приведет к отправке нулевых соединений на ваш локальный SSH-сервер. Вы можете указать любое имя хоста с нулевым маршрутом, например null, do-not-use или disallowed-server.
Сохраните и закройте файл после внесения изменений.
Теперь вы можете проверить, работает ли наша новая конфигурация. Для этого с помощью SSH-клиента мы попытаемся подключиться к запрещенному адресу или хосту:
Если конфигурация работает правильно, вы сразу получите сообщение об ошибке:
Но если вы попробуете подключиться к доверенному адресу или хосту, подключение будет успешно установлено.
Только что мы успешно внедрили дополнительные средства безопасности, чтобы защититься от ошибок, связанных с человеческим фактором.
Шаг 2 — Внедрение списка разрешенных IP-адресов
Вы можете использовать списки разрешенных IP-адресов для ограничения числа пользователей, имеющих разрешение входить на ваш сервер с помощью IP-адреса. На этом шаге вы настроите список разрешенных IP-адресов для вашего сервера OpenSSH.
Зачастую вы будете входить на сервер с ограниченного числа известных доверенных IP-адресов. Например, это может быть ваше домашнее интернет-подключение, корпоративное оборудование VPN, статический инсталляционный сервер или узел-бастион в ЦОД.
Внедряя список разрешенных IP-адресов, вы можете быть уверены, что в систему можно войти только с одного из предварительно одобренных IP-адресов, что значительно снижает риск проникновения в случае утечки ваших частных ключей и/или паролей.
Примечание. Обязательно проверьте корректность IP-адресов, которые вы добавляете в список. Убедитесь, что эти адреса не являются плавающими или динамическими, которые могут регулярно меняться. Данная функция, например, часто встречается у поставщиков интернет-услуг.
Вы можете определить текущий IP-адрес, с которого вы подключаетесь к вашему серверу, с помощью команды :
Будет выведен текст следующего вида:
Найдите в списке вашу учетную запись пользователя и отметьте связующий IP-адрес. В данном случае мы используем в качестве примера IP-адрес .
Чтобы внести ваш IP-адрес в список разрешенных адресов, откройте файл конфигурации сервера OpenSSH в предпочитаемом текстовом редакторе:
Вы можете создавать списки разрешенных IP-адресов с помощью директивы конфигурации , которая ограничивает аутентификацию пользователя на основе имени пользователя и/или IP-адреса.
Какая именно конфигурация подходит больше всего, зависит от настроек вашей системы и требований. Следующие примеры помогут вам определить наиболее подходящую конфигурацию:
Ограничить всех пользователей конкретным IP-адресом:
Ограничить всех пользователей конкретным диапазоном IP-адресов с помощью записи бесклассовой междоменной маршрутизации (CIDR):
Ограничить всех пользователей конкретным диапазоном IP-адресов (с помощью подстановочных знаков):
Ограничить всех пользователей несколькими конкретными IP-адресами и диапазонами:
Запретить вход всем пользователям, кроме указанных пользователей с конкретных IP-адресов:
Ограничить конкретного пользователя конкретным IP-адресом, сохраняя возможность для всех других пользователей входить без ограничений:
Предупреждение. В файле конфигурации OpenSSH все конфигурации в блоке будут применяться только к подключениям, которые соответствуют критериям, независимо от отступов и разрывов строк. Это означает, что вы должны быть осторожны и убедиться, что конфигурации, предназначенные для глобального применения, не попали в блок . Чтобы избежать этого, рекомендуется поставить все блоки в самом низу/конце файла конфигурации.
После завершения установки конфигурации добавьте ее внизу файла конфигурации сервера OpenSSH:
sshd_config
Сохраните и закройте файл, а затем перейдите к проверке синтаксиса конфигурации:
Если ошибок не выявлено, можно перезагрузить сервер OpenSSH для применения конфигурации:
На этом шаге вы внедрили список разрешенных IP-адресов на вашем сервере OpenSSH. На следующем шаге мы ограничим оболочку пользователя, чтобы сократить количество команд, разрешенных к использованию.
Включение SSH в Ubuntu
Сервер SSH не устанавливается по умолчанию в настольных системах Ubuntu, но его можно легко установить из стандартных репозиториев Ubuntu.
Чтобы установить и включить SSH в вашей системе Ubuntu, выполните следующие действия:
-
Откройте свой терминал либо с помощью либо щелкнув значок терминала и установите пакет , набрав:
При появлении запроса введите пароль и введите чтобы продолжить установку.
-
После завершения установки служба SSH запустится автоматически. Чтобы убедиться, что установка прошла успешно и запущена служба SSH, введите следующую команду, которая распечатает состояние сервера SSH:
Вы должны увидеть что-то вроде :
Нажмите чтобы вернуться в командную строку.
-
Ubuntu поставляется с инструментом настройки брандмауэра под названием UFW. Если в вашей системе включен брандмауэр, обязательно откройте порт SSH:
Шаг 3 — Аутентификация на сервере Ubuntu с помощью ключей SSH
Если вы успешно выполнили одну из вышеописанных процедур, вы сможете войти на удаленный хост без пароля учетной записи для удаленного хоста.
Базовый процесс выглядит аналогично:
Если вы подключаетесь к этому хосту первый раз (если вы используете указанный выше последний метод), вы сможете увидеть следующее:
Это означает, что ваш локальный компьютер не распознает удаленный хост. Введите «yes» и нажмите , чтобы продолжить.
Если вы не указывали пароль для своего закрытого ключа, вы войдете в систему немедленно. Если вы указали пароль закрытого ключа при создании ключа, вам будет предложено ввести его сейчас (для безопасности вводимые символы не будут отображаться в сеансе терминала). После аутентификации в оболочке откроется новый сеанс с настроенной учетной записью на сервере Ubuntu.
Если аутентификация на базе ключа выполнена успешно, вы можете перейти к изучению дополнительных возможностей защиты системы посредством отключения аутентификации с помощью пароля.
Как пользоваться PuTTY
1. Интерфейс программы
Сразу же после запуска программы из меню пуск вы увидите графический интерфейс ее настройки. После подключения вы будете видеть только терминал, но настроить программу можно через удобный интерфейс.
Рассмотрим за что отвечают те или иные вкладки программы, чтобы вы ориентировались что и где искать. У нас есть четыре вкладки:
- Session — отвечает за подключение удаленному серверу, тут мы вводим параметры подключения, порт, адрес, а также можем сохранить все настройки putty, чтобы не настраивать каждый раз заново.
- Terminal — позволяет включать или отключать возможности терминала;
- Window — настройка внешнего вида окна, цвет, шрифт, кодировка;
- Connection — настройка параметров подключения, алгоритма шифрования, сжатия, ключей аутентификации, X11 и других параметров.
Каждая вкладка имеет несколько подразделов, но мы не будем сейчас их трогать, а перейдем сразу к практике и посмотрим как подключиться putty к удаленному узлу.
2. Подключение к удаленному компьютеру PuTTY
Чтобы подключиться к удаленному компьютеру по SSH перейдите на вкладку «Session», здесь, в поле «Host Name» необходимо прописать ip адрес или имя хоста, компьютера, к которому вы хотите подключиться, в поле порт — нужно указать порт, на котором запущен SSH сервер, по умолчанию используется порт 22:
Далее, нажмите кнопку «Open». После этого появится запрос на добавление ключа сервера в список доверенных ключей, нажмите «Да»:
Затем вам будет нужно ввести логин пользователя и пароль
Важно заметить, что скопировать логин или пароль у вас не получится, необходимо только вводить вручную:
Теперь авторизация прошла успешно, и вы можете выполнять нужные действия на сервере:
3. Сохранение сессии PuTTY
Чтобы не вводить каждый раз ip и порт можно сохранить эти данные в виде сессии, для этого пропишите новое имя в поле «Saved Sessions», а затем нажмите кнопку «Save»:
Теперь вы сможете загрузить сохраненную сессию, нажав кнопку «Load».
После того как будет завершена настройка putty и все параметры будут выставлены правильно вы можете сохранить настройки и не вводить их несколько раз.
4. Имя пользователя по умолчанию
Вы можете не вводить имя пользователя каждый раз, для этого перейдите на влкадку «Connection», затем «Data» и в поле «Auto-login Username» пропишите имя пользователя, например, root:
Теперь подключение putty будет выполняться от имени этого пользователя.
5. Авторизация по ключу ssh в PuTTY
Чтобы не вводить каждый раз пароль можно настроить авторизацию по ключу. В Linux такая возможность используется очень широко потому что это удобно. Первым делом необходимо создать ключ. Для этого запустите утилиту PuTTYgen и установите переключатель в положение «SSH-2 RSA» нажмите «Generate»:
Обязательно ключ должен быть SSH-2 RSA, если в главном окне нет, выберите в меню «Key». Подвигайте мышкой, чтобы создать достаточное количество энтропии:
Ключ готов, затем, с помощью кнопок «Save Public Key» и «Save Private Key» сохраните оба ключа.
Далее, откройте PuTTY, перейдите на вкладку «Connection», затем «SSH», затем «Auth»:
Здесь необходимо нажать кнопку «Browse» и добавить недавно сохраненный приватный ключ:
Далее, возвращаемся на вкладку «Session», выбираем наше сохранение и нажимаем «Save» чтобы сохранить настройки. Осталось только отправить наш открытый ключ на сервер. Для этого авторизуйтесь на нем с помощью пароля и открытый ключ вставьте ключ в конец файла /root/.ssh/authorized_keys.
Ключ можно брать прямо из окна PuTTYgen «Public key for pasting» или из файла открытого ключа:
Все, теперь можно выходить и авторизоваться снова. На этот раз подключение по ssh putty будет выполняться с помощью нашего ключа. Не забывайте сохранять настройки сессии, чтобы не выбирать ключ каждый раз. Теперь вы знаете как пользоваться программой putty, рассмотрим еще передачу файлов.
5. Передача файлов через scp в PuTTY
Не все знают, но PuTTY позволяет передавать файлы через ssh также как это делает linux с помощью утилиты scp. Нажмите Win+R, затем пропишите cmd, чтобы запустить командную строку.
Синтаксис утилиты pcsp выглядит следующим образом:
pscp опции путь_файлу имя_пользователя@хост/путь/к/файлу/на/удаленном/хосте
Например, мы можем отправить файл из текущей папки в папку пользователя /root/:
С помощью опции -P можно задать удаленный порт:
А опция load позволяет загрузить сохраенные настройки сессии PuTTY:
Теперь вы знаете как использовать putty для передачи файлов.
Шаг 1 — Создание пары ключей
Первый шаг — создание пары ключей на клиентской системе (обычно на вашем компьютере):
По умолчанию последние версии будут создавать 3072-битную пару ключей RSA, которая достаточно безопасна для большинства сценариев использования (вы можете также добавить к этой команде флаг для получения 4096-битного ключа).
После ввода команды вы должны увидеть следующее:
Нажмите ENTER, чтобы сохранить пару ключей в подкаталог домашнего каталога или укажите альтернативный путь.
Если вы ранее создали пару ключей SSH, вы можете увидеть следующую строку:
Если вы решите перезаписать ключ на диске, вы больше не сможете выполнять аутентификацию с помощью предыдущего ключа. Будьте осторожны при выборе варианта yes, потому что этот процесс уничтожает ключи, и его нельзя отменить.
Затем вы должны увидеть следующую строку:
Здесь вы можете ввести защищенный пароль, что настоятельно рекомендуется сделать. Пароль добавляет дополнительный уровень безопасности для защиты от входа в систему несанкционированных пользователей. Дополнительную информацию о безопасности можно найти в нашем обучающем модуле Настройка аутентификации на базе ключей SSH на сервере Linux.
Вывод затем должен выглядеть примерно следующим образом:
Теперь у вас есть открытый и закрытый ключи, которые вы можете использовать для аутентификации. Наследующем шаге вам нужно разместить открытый ключ на сервере, чтобы вы могли использовать аутентификацию на базе ключей SSH для входа в систему.
WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!
При попытке подключения к, казалось бы, известному хосту можно получить ошибку
ssh user@192.168.1.2
ERROR: @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
ERROR: @ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @
ERROR: @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
ERROR: IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
ERROR: Someone could be eavesdropping on you right now (man-in-the-middle attack)!
ERROR: It is also possible that a host key has just been changed.
ERROR: The fingerprint for the ECDSA key sent by the remote host is
ERROR: SHA256:abcde/accdefghijkld9UNaDBnnUHanJ9Svca9vFx7c.
ERROR: Please contact your system administrator.
ERROR: Add correct host key in /home/user/.ssh/known_hosts to get rid of this message.
ERROR: Offending ECDSA key in /home/user/.ssh/known_hosts:3
ERROR: remove with:
ERROR: ssh-keygen -f «/home/user/.ssh/known_hosts» -R «192.168.1.2»
ERROR: ECDSA host key for 192.168.1.2 has changed and you have requested strict checking.
ERROR: Host key verification failed.
Из строки
ERROR: Offending ECDSA key in /home/user/.ssh/known_hosts:3
Можно понять, что проблема вызвана третьей строкой файла
/home/user/.ssh/known_hosts
Если вы уверены в надёжности хоста к которому подключаетесь, то
можете просто удалить эту строку и подключиться снова
sed -i 3d /home/$(whoami)/.ssh/known_hosts
ssh-keygen -R 192.168.1.2
В случае более сложных подключений, предупреждение может быть по поводу определённого порта
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that a host key has just been changed.
The fingerprint for the ED25519 key sent by the remote host is
SHA256:nN5D5mBv00vkinsOmKbaKN1o2dEVZj5BidWaKBY1LpA.
Please contact your system administrator.
Add correct host key in /home/username/.ssh/known_hosts to get rid of this message.
Offending ED25519 key in /home/username/.ssh/known_hosts:14
remove with:
ssh-keygen -f «/home/username/.ssh/known_hosts» -R «:1234»
ED25519 host key for :1234 has changed and you have requested strict checking.
Host key verification failed.
В этом случае подсказка по-прежнему содержится в предупреждении (выделил её зелёным).
Выполните
ssh-keygen -f «/home/username/.ssh/known_hosts» -R «:1234»
# Host :1234 found: line 14
/home/username/.ssh/known_hosts updated.
Original contents retained as /home/username/.ssh/known_hosts.old
2: Отключение слабых шифров OpenSSH
Сейчас мы изучим наборы шифров, доступные на вашем SSH-клиенте, и отключим поддержку устаревших шифров.
Для начала откроем глобальный конфигурационный файл в текстовом редакторе:
Закомментируйте стандартную конфигурацию Ciphers, добавив в начало строки символ диеза.
Затем поместите в начало файла следующее:
Эта строка отключит устаревшие шифры Arcfour, а также все шифры, использующие Cipher Block Chaining (CBC), которые больше не рекомендуется использовать.
Если позже вам будет необходимо подключиться к системам, которые поддерживают только эти устаревшие шифры, вы можете явно включить требуемые шифры для определенных хостов с помощью блока Match. К примеру, чтобы включить шифр 3des-cbc для определенного хоста, можно использовать следующую настройку:
Сохраните изменения и выйдите из файла.
Сейчас, как и в разделе 1, вы можете снова протестировать новую конфигурацию клиента SSH, чтобы проверить наличие ошибок:
Если вы добавили блок Match, чтобы включить устаревшие шифры для определенного хоста, вы можете также проверить эту конфигурацию во время теста, указав адрес нужного вам хоста:
Мы отключили все слабые или устаревшие шифры. Теперь пора проверить права доступа к файлам, которые использует ваш SSH-клиент.