ENote
  • ✨Home
    • Відмова від відповідальності
  • Progr
    • Python
      • Модулі
        • pip
        • cgitb
        • datetime
          • Класс datetime() модуля datetime
            • Методы объекта datetime.datetime()
            • datetime.datetime examples
          • Класс timedelta() модуля datetime
            • datetime.timedelta examples
          • Класс date() модуля datetime
            • datetime.date examples
          • Класс time() модуля datetime
            • Формат для функций .strftime() и .strptime(). модуля datetime
        • os.path
        • pathlib
          • pathlib to str
        • subproces
        • os
        • Jinja
          • Синтаксис шаблонів Jinja
          • Клас Environment()
          • Простой пример cgi-скрипта c Jinja-шаблоном
          • Создание переменных
            • Як оновити глобальну змінну зсередини оператора IF / ELSE або циклу FOR
          • Фільтри і методи
          • Число у рядок, slices
          • Вбудовані фільтри Jinja2
        • re
          • re.search - example
          • re.findall - example
        • email / smtplib
          • Как отправлять электронные письма с помощью Python
        • requests
          • Як зберегти та завантажити файли cookie в запитах Python?
          • Извлечение и установка cookies с модулем requests в Python
          • Links
        • http.cookies
          • Всё о работе с cookie в Python — класс http.cookies
        • xlrd
        • xlwt
        • borb
          • ChunkOfText
          • send_usage_statistics
          • borb clear
          • 2.1.3 vs 2.1.15
          • QR-code
          • Залежності borb
        • JSON
          • Кирилиця в JSON
        • matplotlib
        • argparse
        • click
        • configparser
        • traceback
        • sys
          • exit()
        • mysql-connector-python
        • logging
        • icrawler
        • Auto Plates
        • rembg
        • random
      • Strings
        • Built-in methods
        • Форматування виводу
        • Початкові нулі
        • Рядок в число
      • list
        • Об’єднання списків
        • list.sort(), sorted()
        • list.reverse(), reversed()
        • all(), any()
        • sum(), min(), max()
        • map(), filter(), reduce()
        • join(), split()
      • tuple
      • dict
        • Об'єднання / злиття словників
        • Сортування словника Python: значення, ключі тощо
      • set
      • class Enum
      • Середнє арифметичне
      • Virtual environment
        • web-app
      • type(), isinstance()
      • __main__
      • Files & Dirs
        • Try except for exception handling
        • Cписок файлов директории
        • User Home Dir
        • Copy file
      • *args, **qwargs
      • Links
      • Область видимости
      • Handling a File Error
      • assert
      • if
      • Числа
        • Округлення чисел
        • Отримати число з рядка
      • Обработка исключений в Python
      • Файлы и сериализация данных
      • OOP
      • Net and Web
      • Структура проекта на Python
      • Распаковка итерируемых объектов
      • Links
      • Algorithms
      • Python exit commands: quit(), exit(), sys.exit() and os._exit()
      • Цикли for / while
      • uuid
    • JavaScript
      • String
        • replaceAll() polyfill
        • Шаблонные строки
      • Array
        • Все способы перебора массива в JavaScript
      • Object
      • document.location
      • RegExp
      • Examples
        • Вычисление остатка от деления
        • Остаток от деления и деление без остатка
        • Округление числа
      • XMLHttpRequest
      • alert, prompt, confirm
      • onclick
      • hidden, display:none
      • LocalStorage, sessionStorage
      • null, undefined
      • cookies (js)
      • var, let и const
        • var vs let
        • const
      • Модифікація DOM
        • DOM select
      • JSON
        • Try
      • fetch
      • typeof
      • FormData не включає disabled набори полів
      • FormData, fdata
      • Більше одного відео YouTube на одній сторінці
    • HTML, CSS
      • favicon
      • Деякі спецсимволи
      • meta
      • ASCII table
      • lang
      • Псевдоелементи ::after і ::before
      • Cursor
      • Об использовании нестандартных пробелов
      • Картинка фоном
      • Безпечні веб-шрифти
      • Завжди внизу, незалежно від пропорцій екрану
      • напівпрозорий елемент
      • Символи з тінью
      • SVG (bootstrap)
      • rel = canonical
      • link stylesheet: integrity & crossorigin
      • rel = noopener
    • Bootstrap
      • Form Validate
      • Password show/hide
    • Errors
  • Dev
    • Git
      • clone
      • git-scm (book)
      • git config
        • files .git*
        • core.filemode
        • core.sharedRepository
      • .gitignore
      • .gitkeep
      • Видалити з репозиторію
        • Видалений файл з однієї гілки...
      • Пам’ятка
        • Перегляд історії комітів
        • Скасувати git add
        • revert
        • Скасувати внесені зміни у файл
        • Додати до коміту файл
        • Видалити історію попередніх коммітів, та почати "з нуля"
        • Додати файли в останній коміт
      • Робота з гілками
        • Порівняти гілки
      • Git за полчаса
      • Три розділи проєкту Git
      • Merge conflict
      • Pull error
        • Git Error: You have divergent branches...
      • diff
      • Video
      • Merge скасувати
      • .gitignore: Permission denied
    • GitHub
      • SSH-підключення до GitHub
      • Перенести на сервер локальный репозиторий
      • Перенести на сервер репозиторій разом з історією
      • Створення змісту
    • Security
      • robots.txt
      • Cookies
    • Аутентифікація і cookies
      • ChatGPT
  • data
    • MySQL
      • MyISAM vs InnoDB
      • Типи даних
        • NULL (todo)
        • TIMESTAMP
        • YEAR
        • JSON
        • Требования к памяти для символьных типов
        • Поиск записей в таблице, которым нет соответствия в другой
      • Приклад створення БД, та користувача
        • Права для пользователей
      • Переглянути всі індекси таблиці
      • Копіювання, клонування таблиць
      • TEMPORARY TABLE
      • JOIN
      • ALTER TABLE
      • AUTO_INCREMENT
        • AUTO_INCREMENT у складовому індексі
      • LIMIT
        • Использование MySQL LIMIT
      • 10 Примеров входной загрузки данных из текстового файла в таблицы MySQL
      • Рішення
        • Выявление и удаление несвязанных записей
        • Выборка произвольных записей
        • Коректне сортування українських літер
        • Найти записи, которые присутствуют в одной таблице и отсутствуют во второй
        • Как удобно посмотреть данные...
        • Нахождение "дыр" в нумерации
        • Знайти дубликати полів в одній таблиці
        • Дані колонки 1 табл. перенести в 2 табл.
      • Функції
        • LAST_INSERT_ID()
        • GROUP_CONCAT
        • COUNT + DISTINCT
        • Функции для работы с датами и временем
      • Автоматизируйте создание бэкапов
      • mysqldump
        • Time Zone UTC
      • Результат запиту у файл
      • Результат запиту у змінну
      • Пособие по MySQL на Python
      • Змінні
      • Эмуляция функции row_number() в MySQL
      • Изучаем хранимые процедуры MySQL
      • SELECT DISTINCT
      • Dump всієї бази даних
      • Індекси
      • FOREIGN KEY
      • MAX(), MIN()
      • LENGTH, CHAR_LENGTH
      • Встановлення
    • MariaDB
    • PostgreSQL
      • Работа с базой данных PostgreSQL
      • Работаем с PostgreSQL через командную строку в Linux
    • Domains
      • Життєвий цикл доменів
      • Статус домена
    • SQLite, MySQL и PostgreSQL: сравниваем популярные реляционные СУБД
  • Linux
    • DNS
      • Как в DNS прописать 301 редирект
      • mail
        • SPF
          • Mirohost
        • _dmarc _domainkey
        • DKIM
        • Прописати ключі DKIM в exim
        • Листи з неіснуючим адресатом
    • Server
      • Zomro
        • pip
        • SSH-доступ по ключу (zomro)
        • venv
        • UnicodeEncodeError: 'latin-1' codec can't encode character
        • Mail Ports
        • Редірект з SSL-сертификатом на транзитному сайті
        • Редірект з SSL за допомогою .htaccess
      • Створення нового користувача з привілеями sudo в Ubuntu
      • SSH-доступ по ключу
      • Часовий пояс в Ubuntu 20.04
      • SSH-підключення командний рядок
      • Як встановити Python 3.9 (нижчу) на Ubuntu 22.04
      • Автозагрузка сервисов в Ubuntu
      • Підвищення безпеки SSH
      • Ubuntu Server
        • Art 01
    • Commands
      • adduser
      • apt
      • cat
      • ls
      • tar
      • ln
      • find
      • chmod
      • chown
      • mv
      • dig
      • ping
      • passwd
      • htpasswd
      • umask
      • usermode
      • history
      • cmp
      • chattr +i
    • Config
      • Keyboard
      • windows
      • My kbdswtch
      • Затримка при завантаженні системи
      • Files
        • /etc/resolv.conf
        • /boot/grub/grub.cfg
        • .config/user-dir.dirs
        • /etc/fstab
      • Як встановити шрифти
    • Apache
      • Встановлення
      • Подключить виртуальный хост
      • Файл .htaccess
        • Установка индексного файла
        • Фільтр IP-адрес
        • ModRewrite
          • Заборонити доступ за User-Agent
          • Перенаправити на іншу сторінку
          • Додавати слеш до адреси
        • Включити SSI
        • Виконувати скрипти CGI
        • Тимчасовий перехід з одного домену на інший
      • SSI
      • SSL
      • Відключити старт Apache з системою
      • Помилки
        • Скрипт не працює
        • CGI-скрипт не виводить кирилицю
        • Could not reliably determine
        • Permissions are missing on a component of the path
        • Symbolic link not allowed or link target not accessible
      • AddType, AddLanguage, AddCharset
    • Nginx
      • 301 редирект з www. та http: на https://(без www.)domain
    • Soft
      • SublimeText
        • Plugins
      • Firefox
      • Gwenview
      • inkscape
      • Double Commander
      • nano
      • mc
        • Знайти потрібний файл
      • meld / diffuse
      • hexedit
      • Kazam - відео з екрану
      • VeraCrypt
      • XnView MP
      • LibreOffice
      • xdotool
      • System Load Monitor
      • Battery Monitor
      • qBittorrent
    • Перетворення .RPM в .DEB
    • Bash
      • Конкатенация строк в Bash
      • Page
    • Файлові часові позначки в Linux: atime, mtime, ctime
    • Права доступу для файлів і каталогів
    • Зміна паролю root
    • Быстро удалить огромное количество файлов в каталоге
    • Як узнати версію Linux?
    • USB Flash ext4
    • Clear Cache
    • Доступ до спільної папки на Windows
    • Віртуальні консолі TTY1–TTY6
    • APT. Заборона оновлення
  • Різне
    • GitBook
    • Банковское округление
    • Ім’я користувача Youtube
  • Hard
    • Hardware
      • Acer Extensa
      • Таймер Feron TM22
      • WD My Book World Edition 2Tb
        • FTP
        • SSH
          • Проблеми
        • SSHFS
      • Canon PIXMA E3340
      • Термометри
    • Auto
      • Акумулятор
    • Electro
    • USB Flash recovery
Powered by GitBook
On this page
  • ~/.ssh/config
  • Пароль може бути записаний у цей файл?
  • Як налаштувати SSH з’єднання на використання ключа SSH?
  1. Linux
  2. Server

SSH-доступ по ключу

~/.ssh/config

Файл ~/.ssh/config є конфігураційним файлом для OpenSSH, який дозволяє налаштовувати параметри підключення до віддалених серверів. Ось приклад структури цього файлу:

# Коментар: рядок, який починається з символу '#' - це коментар, ігнорується

# Загальні налаштування
Host *
  ForwardAgent yes   # Активувати агент для перенаправлення ключа

# Налаштування для конкретного хоста
Host example.com
  HostName example.com   # Адреса хоста
  User username          # Ім'я користувача
  Port 22                # Порт для підключення
  IdentityFile ~/.ssh/id_rsa  # Шлях до приватного ключа

# Додаткові налаштування для іншого хоста
Host another-host.com
  HostName another-host.com
  User another_username
  Port 2222
  IdentityFile ~/.ssh/another_id_rsa

# Використання псевдонімів для хостів
Host alias
  HostName alias.com
  User alias_user
  Port 1234
  IdentityFile ~/.ssh/alias_key

# Налаштування стиснення та обмеження пропускної здатності
Host example.com
  Compression yes
  CompressionLevel 6
  IPQoS lowdelay throughput

# Приклад використання проксі
Host proxy-example
  HostName example.com
  User username
  Port 22
  IdentityFile ~/.ssh/id_rsa
  ProxyJump proxy-server.example.com:2222

# Налаштування підключення через бастион-хост (jump host)
Host target-host
  HostName target-host.com
  User target_user
  Port 22
  IdentityFile ~/.ssh/target_id_rsa
  ProxyJump bastion-host.com:2222

Зверніть увагу, що ви можете вказувати різні параметри для різних хостів або груп хостів. Це дозволяє гнучко налаштовувати підключення до різних серверів.

Пароль може бути записаний у цей файл?

Ні, ви не повинні включати пароль у файл конфігурації SSH (~/.ssh/config). Зазвичай, цей файл використовується для конфігурування параметрів підключення, таких як ім'я хоста, порт, користувач тощо, але не для зберігання паролів.

Для аутентифікації зазвичай використовують ключі SSH (SSH keys) або інші методи, такі як введення паролю під час спроби підключення. Зберігати паролі в текстовому файлі, особливо в домашньому каталозі, є небезпечною практикою з погляду безпеки. Якщо файл конфігурації доступний іншим користувачам чи системним процесам, це може представляти ризик.

Ключі SSH - це безпечний спосіб автентифікації, і їх використання рекомендується для підключення до віддалених серверів.

Як налаштувати SSH з’єднання на використання ключа SSH?

Щоб налаштувати SSH з'єднання для використання ключа SSH, вам слід виконати кілька кроків:

  1. Генерація ключа SSH: Використайте команду ssh-keygen для генерації пари ключів (приватного та публічного). Зазвичай за замовчуванням ці ключі зберігаються в домашньому каталозі користувача у підкаталозі .ssh/. Використовуйте таку команду:

    ssh-keygen -t rsa -b 2048 -f ~/.ssh/id_rsa

    В цьому прикладі генерується ключ типу RSA з довжиною 2048 біт, і ім'я файлу для приватного ключа буде id_rsa, а для публічного - id_rsa.pub.

  2. Додавання ключа до агента SSH: Додайте приватний ключ до агента SSH, щоб уникнути введення паролю кожен раз при з'єднанні. Використовуйте команду:

    ssh-add ~/.ssh/id_rsa
  3. Копіювання публічного ключа на сервер: Скопіюйте вміст файлу ~/.ssh/id_rsa.pub на віддалений сервер. Ви можете зробити це вручну або використовувати команду ssh-copy-id. Наприклад:

    ssh-copy-id username@remote_server

    Замініть username на ваше ім'я користувача та remote_server на адресу або ім'я сервера.

  4. Налаштування файлу конфігурації SSH: Відредагуйте або створіть файл ~/.ssh/config та додайте конфігураційні параметри. Наприклад:

    Host remote_server
      HostName example.com
      User username
      IdentityFile ~/.ssh/id_rsa

    Знову замініть remote_server, example.com, username і ~/.ssh/id_rsa на ваші дані.

  5. Тестування з'єднання: Використайте команду ssh для тестування з'єднання:

    ssh remote_server

    Якщо все налаштовано правильно, вас повинно бути ввідено в систему без введення пароля.

Тепер ваше SSH з'єднання повинно використовувати ключ для автентифікації. Важливо зауважити, що приватний ключ (~/.ssh/id_rsa) повинен залишатися конфіденційним і не повинен бути доступним для інших користувачів.

PreviousСтворення нового користувача з привілеями sudo в UbuntuNextЧасовий пояс в Ubuntu 20.04

Last updated 1 year ago