Как настроить ssh-ключи и кодовую фразу для сервера

Показ публичного ключа из приватного

Опция -y прочитает файл OpenSSH формата с приватным ключом и напечатает в стандартный вывод публичный ключ OpenSSH.

Также с помощью опции -f нужно указать путь до приватного ключа, из которого будет извлечён соответствующий ему публичный ключ:

ssh-keygen -y -f ПРИВАТНЫЙ-КЛЮЧ

Например, приватный ключ помещён в файл id_rsa, тогда команда извлечения из него публичного ключа следующая:

ssh-keygen -y -f id_rsa

Вы можете столкнуться с ошибкой:

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@         WARNING: UNPROTECTED PRIVATE KEY FILE!          @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0644 for 'id_rsa' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.
Load key "id_rsa": bad permissions

Она означает, что приватный ключ доступен для чтения кому угодно и программа ssh-keygen отказывается работать с ним по этой причине. Чтобы исправить эту ошибку, просто установите на файл с приватным ключом права доступа 600:

chmod 600 id_rsa

ProxyCommand

Иногда вам может потребоваться подключиться с вашего настольного компьютера или ноутбука к удаленному компьютеру через интранет вашей компании или за брандмауэром. В этом случае вы можете использовать промежуточный сервер или jump-box. Этот тип настройки полезен, если вы работаете в защищенной системе, которая настроена на прием SSH-соединений только от фиксированного набора хостов.

Чтобы использовать настройку jump-box с расширением Remote-SSH, вы можете использовать параметр конфигурации . Эта конфигурация откроет фоновое SSH-соединение с jump-box, а затем подключится через частный IP-адрес к цели.

Вы можете установить параметр конфигурации в файле конфигурации SSH следующим образом:

Подключение по SSH по ключу, без пароля

Для удобного подключения по SSH (и многим другим сервисам) без ввода пароля можно использовать ключи.

Нужно создать пару ключей: приватный (закрытый) ключ и публичный (открытый) ключ. Приватный ключ нужно хранить и никогда никому не показывать. Публичный ключ можно показывать всем и распространять свободно.

Эти ключи связаны друг с другом таким образом, что зашифровав информацию одним ключом, расшифровать ее можно только другим. Например, если ваш друг зашифрует письмо вашим публичным ключом, то прочитать его сможете только вы, потому что для этого нужен ваш приватный ключ. И наоборот: если вы зашифруете что-то своим приватным ключом, то расшифровать его можно только вашим публичным ключом. Так как публичный ключ доступен всем, любой может расшифровать это сообщение. Но он может быть уверен, что сообщение пришло именно от вас. В этом заключается идея цифровой подписи.

Генерация ключей

Создадим пару ключей:

Программа запустится и спросит, куда сохранять ключи:

Нажмите Enter для сохранения в стандартное место — директорию в вашей домашней директории.

Программа запросит passphrase. Это вроде пароля для ключа. Можно просто нажать Enter и пропустить этот шаг. Или ввести passphrase — тогда его нужно будет вводить каждый раз, когда используется ключ.

Ключи созданы:

Теперь у вас есть два файла:

  • — приватный ключ. Никогда никому и никуда не передавайте его!
  • — публичный ключ. Спокойно распространяйте его.

В Windows можно использовать в подсистеме Ubuntu for Windows или в командной строке Git for Windows. Или создавать ключи графической утилитой вроде PuTTYgen.

Загрузка публичного ключа на сервер

Нужно добавить публичный ключ на сервер в файл . Самый простой способ — запустить на локальной машине команду для копирования ключа:

Другой способ — подключиться по паролю, открыть в редакторе файл и добавить в конец текст из вашего файла .

Теперь при подключении пароль запрашиваться не будет1.

После включения соединений по ключу рекомендуется отключить подключение по паролю.

Конфигурация и настройка Pi Hole

Чтобы настроить PiHole, вам необходимо получить доступ к веб-интерфейсу / панели инструментов.

Как настроить Pi Hole? Ну, в большинстве случаев на Pi Hole настраивать особо нечего. Но одна хорошая настройка, которую нужно знать, – это расширение или редактирование ваших блочных списков.

PiHole со сторонними списками блокирует более 100 000 доменов. Этим спискам доверяют, и у вас редко бывают ложные срабатывания.

Но большинство пользователей PiHole могут захотеть расширить это (например, для известных хостов вредоносных программ / вымогателей). PiHole сообщество отлично и несколько пользователей создали и продолжают поддерживать пользовательский расширенные списки блоков. Список Уолли является заметным.

Список знаменитых Уолли

Выберите один из 3 доступных списков. Это отличное начало. Кроме того, вы можете найти больше в этой теме Reddit. Некоторые пользователи объединили множество списков, чтобы создать свои (например, этот ).

Предостережение: не добавляйте каждый блок-лист, который вы можете найти. Это может нарушить вашу работу в Интернете и вызвать проблемы (например, сайты покупок, сайты рефералов / возврата денег, приложение CNN, веб-страница GitHub и т.д. Могут не работать). Основные / стандартные списки являются отличной отправной точкой и уже блокируют более 100 000 доменов.

После того, как у вас есть список доработан, добавьте его в PiHole черный список, перейдя в Настройки -> списки блоков, как показано на рисунке ниже. Если вы выбрали один из расширенных списков блокировок, вы можете рассмотреть возможность внесения в белый список некоторых

Pi-Hole Добавить рекламные списки – как пример

Нажмите Сохранить и обновить.

Основные команды Pi Hole

Почти вся работа администратора по настройке Pi Hole может быть выполнена через веб-интерфейс. Но с помощью командной строки вы можете сделать это и многое другое (например, изменить пароль веб-интерфейса). Ниже я приведу несколько полезных примеров.

Гораздо больше задокументировано здесь.

pihole -a -p – изменить пароль WebUI

Сбросить пароль PiHole

Белый и черный список
  • pihole -w -l – список доменов в белом списке
  • pihole -w example.com – добавить example.com в белый список
  • pihole -w -d example.com – удалить example.com из белого списка
  • pihole -b -l – список доменов в черном списке
  • pihole -b example.com – добавить example.com в черный список
  • pihole -b -d example.com – удалить example.com из черного списка

pihole-up – Удпите Пихоле

Обновление PiHole

Включить Отключить PiHole
  • pihole enable – включить PiHole
  • Pihole disable – отключить PiHole навсегда
  • Pihole отключить 10м – отключить PiHole на 10 минут
  • Pihole отключить 60 с – отключить PiHole на 1 мин

Использование ключей SSH и их преимущества

При создании виртуальной машины Azure с открытым ключом платформа Azure копирует его (в формате ) в папку на виртуальной машине. Ключи SSH в используются для запросов к клиенту, который должен подобрать соответствующий закрытый ключ при SSH-подключении. На виртуальной машине Linux в Azure, использующей ключи SSH для аутентификации, платформа Azure настраивает сервер SSHD таким образом, чтобы для входа можно было использовать только ключи SSH. Создавая виртуальные машины Linux в Azure с использованием ключей SSH, вы защищаете это развертывание и выполняете стандартный шаг настройки после развертывания — отключаете пароли в файле .

Если вы не хотите использовать ключи SSH, можно настроить на виртуальной машине Linux проверку пароля. Этого достаточно для виртуальных машин без интернет-доступа. Но пользователь по-прежнему должен управлять паролями каждой своей виртуальной машины, а также обеспечивать соответствующие политики паролей и предоставлять рекомендации, к примеру, в отношении минимальной длины паролей и частоты их обновления.

SCP Команда: На Что Обратить Внимание

Поскольку SCP использует шифрование SSH, для копирования файла вам потребуется пароль ssh. Кроме того, необходимо иметь право на чтение на машине, с которой вы собираетесь копировать, и право на запись на машине(ах), куда вы будете копировать.

Для аутентификации и настройки соединения вам нужно будет создать пару ключей ssh с помощью следующей команды:

ssh-keygen -t rsa

Вы копируете этот ключ в удалённую систему, используя:

ssh-copy-id user@remote_machine

Открытый ключ будет скопирован сразу после аутентификации на удалённом(ых) компьютере(ах), после чего вы сможете выполнить перенос.

Если вы не помните пароль(и) root для какой-либо из систем, вы можете попросить клиента ssh выбрать файл, из которого закрытый идентификационный ключ для подтверждения RSA будет считываться автоматически.

Для протокола версии 2 дефолтный путь идентификации ключа хоста — ~/.ssh/id_dsa, а для версии протокола 1 — ~/.ssh/id_rsa. Затем нужно выяснить, где хранятся резервные копии закрытых и открытых ключей, чтобы вы могли применить команду ssh для их автоматического использования. 

Для пути /back-up/home/jack/.ssh команда выглядит следующим образом:

ssh -i /back-up/home/user/.ssh/id_dsa [email protected]

Совет: значением по умолчанию этого параметра является –overwrite , поэтому, если вы не укажете опцию –overwrite no или –overwrite ask в своей команде scp, операция перезапишет файлы с одинаковыми названиями и местоположениями без каких-либо предупреждений.

Если вы копируете большие файлы, мы рекомендуем использовать сеанс tmux или запустить команду на другом экране. Кроме того, вы также должны использовать опцию -v. Это заставит scp отображать любые отладочные соединения, проблемы с аутентификацией или конфигурацией.

Прежде чем начать

Команда scp  использует ssh для передачи данных, поэтому она требует ключ SSH или пароль для аутентификации на удаленном систем.

Двоеточие(:) в scp различие между локальным и удаленным хостами.

Чтобы иметь возможность копировать файлы, необходимо иметь по крайней мере разрешения на чтение исходного файла и разрешение на запись в целевой системе.

Будьте осторожны при копировании файлов с одинаковым именем и расположением на обеих системах, scp будет перезаписывать файлы без предупреждения.

При передаче больших файлов рекомендуется запустить команду scp внутри экрана или tmux сессии в Linux.

Основы

Рассматриваемая проблема

Необходимость вводить логин и пароль для каждого в каждой системе неудобна, особенно если под управлением находится множество систем. У некоторых администраторов, возможно, даже имеется скрипт или cron-задача, которые упрощают использование ssh соединения. Так или иначе, у этой проблемы есть решение, и оно начинается с аутентификации с открытым ключом.

Как работает аутентификация с открытым ключом?

Предположим, что клиент хочет соединиться с демоном ssh на сервере. Клиент сначала генерирует пару ключей и пересылает открытый ключ на сервер. Затем, каждый раз, когда клиент попытается подключиться к серверу, тот отправит запрос зашифрованный этим открытым ключом. Только обладатель соответствующего закрытого ключа (то есть клиент) способен его расшифровать, так что правильный ответ приведёт к успешной аутентификации.

Отключение и перезапуск сервера

В некоторых случаях нужно завершить работу или перезагрузить сервер после выполнения других директив. Вы можете сделать это с помощью power_state.

Эта директива имеет четыре опции: delay, timeout, message и mode.

Опция delay указывает, когда произойдет перезапуск или завершение работы. По умолчанию ее значение now, то есть процедура начнется немедленно. Задержка перезагрузки указывается в минутах в формате +<num_of_mins>.

Параметр timeout принимает значение, которое представляет количество секунд ожидания завершения процесса cloud-init до начала обратного отсчета delay.

Поле message позволяет указать сообщение, которое будет отправлено всем пользователям системы. Опция mode задает тип инициируемого события. Это может быть poweroff (чтобы отключить сервер), reboot (чтобы перезапустить сервер) или halt (если система сама должна решить, что лучше сделать, и обычно она выключает машину):

Сведения о парах ключей

Парой ключей называются файлы открытого и закрытого ключей, которые используются в некоторых протоколах аутентификации.

При аутентификации SSH на основе открытого ключа используются асимметричные алгоритмы шифрования для создания двух файлов ключей, один из которых считается закрытым, а второй открытым. Файлы закрытых ключей выполняют функцию паролей, а значит, должны быть постоянно защищены. Если кто-то получит ваш закрытый ключ, он сможет войти от вашего имени на любой сервер с поддержкой SSH, к которому у вас есть доступ. Открытый ключ размещается на сервере SSH. Его можно свободно распространять, не компрометируя закрытый ключ.

Если на сервере SSH используется аутентификация с помощью ключей, сервер и клиент SSH сравнивают открытый ключ, связанный с предоставленным именем пользователя, с закрытым ключом. Если открытый ключ на стороне сервера не проходит проверку по закрытому ключу, сохраненному на стороне клиента, аутентификация не будет выполнена.

Многофакторную проверку подлинности можно реализовать с помощью пар ключей, введя парольную фразу при создании пары ключей (см. раздел о ниже). При аутентификации пользователю предлагается ввести эту парольную фразу. Она применяется вместе с закрытым ключом для аутентификации пользователя.

Создание ключей узла

Для открытых ключей действуют определенные требования к ACL, которые в среде Windows соответствуют предоставлению доступа только администраторам и системной учетной записи. При первом использовании sshd будет автоматически создана пара ключей для узла.

Важно!

Сначала необходимо установить OpenSSH Server. См. статью о начале работы с OpenSSH.

По умолчанию служба sshd настроена для запуска вручную. Чтобы запускать ее каждый раз при перезагрузке сервера, выполните следующие команды в командной строке PowerShell с повышенными привилегиями на сервере:

Так как со службой sshd не связан какой-либо пользователь, ключи узла сохраняются в папке C:\ProgramData\ssh.

Развертывание открытого ключа

Чтобы использовать созданный выше ключ пользователя, поместите содержимое открытого ключа (~\.ssh\id_ed25519.pub) на сервер в текстовый файл, имя и расположение которого зависят от того, принадлежит ли учетная запись пользователя к учетной записи участника группы локальных администраторов или обычного пользователя.

Обычный пользователь

Содержимое открытого ключа (~\.ssh\id_ed25519.pub) нужно разместить на сервере в текстовом файле в папке C:\Users\username\.ssh\. Клиентский компонент OpenSSH включает scp (служебная программа безопасной передачи файлов) для упрощения этого процесса.

В приведенном ниже примере открытый ключ копируется на сервер (username заменяется именем пользователя). Изначально необходимо будет использовать пароль для учетной записи пользователя на сервере.

Администратор

Содержимое открытого ключа (~\.ssh\id_ed25519.pub) нужно разместить на сервере в текстовом файле в папке C:\ProgramData\ssh\. Клиентский компонент OpenSSH включает scp (служебная программа безопасной передачи файлов) для упрощения этого процесса. Список управления доступом для этого файла должен быть настроен на предоставление доступа только администраторам и системе.

В приведенном ниже примере открытый ключ копируется на сервер и настраивает список управления доступом (username заменяется именем пользователя). Изначально необходимо будет использовать пароль для учетной записи пользователя на сервере.

Примечание

В этом примере показаны шаги для создания . Если он выполняется несколько раз, он будет перезаписывать этот файл каждый раз. Чтобы добавить открытый ключ для нескольких пользователей с правами администратора, необходимо добавить этот файл в каждый открытый ключ.

Эти действия завершают настройку, которая требуется для использования аутентификации OpenSSH на основе ключей в среде Windows.
Теперь пользователь может подключаться к узлу sshd с любого клиента, где есть закрытый ключ.

Управление приватными ключами на клиенте SSH

Одну и ту же пару ключей можно использовать для доступа к множеству серверов SSH. Следовательно, на каждом из них (на клиенте и на серверах) может быть по одному ключу. Тем не менее если у вас несколько ключей или если вы хотите использовать другое, не стандартное расположение файлов ключей, то далее показано, как указать расположения в строке команды и в конфигурационных файлах клиента SSH.

В конфигурационном файле клиента SSH для указания пути до приватных ключей используется директива IdentityFile. Её значения по умолчанию:

IdentityFile ~/.ssh/id_rsa
IdentityFile ~/.ssh/id_dsa
IdentityFile ~/.ssh/id_ecdsa
IdentityFile ~/.ssh/id_ed25519

Как можно увидеть, разрешено использовать тильду для указания на домашнюю папку пользователя.

Можно иметь несколько директив IdentityFile в конфигурационных файлах; все эти идентификаторы будут опробованы по очереди. Множественные директивы IdentityFile добавят кандидатов в очередь для попыток (это поведение отличается от других конфигурационных директив).

Также можно настроить использование определённых идентификационных файлов для определённых хостов:

Host 192.168.0.1
	IdentityFile ~/.ssh/id_rsa_router

Host 185.117.153.79
	IdentityFile ~/.ssh/id_rsa_suip

Host *
	IdentityFile ~/.ssh/id_rsa
	IdentityFile ~/.ssh/id_dsa
	IdentityFile ~/.ssh/id_ecdsa
	IdentityFile ~/.ssh/id_ed25519

Для строки команды используется опция -i, после которой нужно указать путь до приватного ключа (файла идентификации). Значение по умолчанию такие же, как и у рассмотренной выше директивы. Опцию -i можно использовать несколько раз.

-i identity_file

Общие сведения о SSH и ключах

SSH — это протокол зашифрованного подключения, позволяющий безопасно входить в систему через незащищенные соединения. SSH — это протокол подключения по умолчанию для виртуальных машин Linux, размещенных в Azure. Хотя протокол SSH и обеспечивает зашифрованное подключение, при использовании паролей с SSH виртуальные машины все равно не защищены от атак методом подбора. Мы рекомендуем подключаться к виртуальной машине по SSH с помощью пары «открытый ключ — закрытый ключ», также известных как ключи SSH.

Пара из открытого и закрытого ключей аналогична запиранию двери. Замок общедоступен, любой человек с подходящим ключом может открыть дверь. Ключ является закрытым и предоставляется только доверенным людям, так как его можно использовать для открытия двери.

  • Открытый ключ размещается на виртуальной машине Linux при ее создании.

  • Закрытый ключ остается в локальной системе. Его нужно защищать и нельзя никому предоставлять.

При подключении к виртуальной машине Linux она проверяет SSH-клиент, чтобы убедиться, что у него есть правильный закрытый ключ. Если у клиента есть закрытый ключ, он получает доступ к виртуальной машине.

В зависимости от политик безопасности организации вы можете повторно использовать отдельную пару ключей для доступа к нескольким виртуальным машинам и службам Azure. Для каждой виртуальной машины не требуется отдельная пара ключей.

Открытый ключ можно предоставить любому пользователю, но только вы (или ваша локальная инфраструктура безопасности) должны иметь доступ к вашему закрытому ключу.

ControlMaster

Если вы подключаетесь к удаленному хосту SSH с использованием других методов аутентификации, кроме аутентификации на основе ключей, например двухфакторной, на основе пароля или ключа SSH с парольной фразой, вам может потребоваться вводить необходимую информацию несколько раз.

Вместо того, чтобы открывать несколько соединений SSH, вы можете использовать опцию (только на клиентах macOS/Linux), чтобы повторно использовать существующее соединение и сократить количество раз, когда вы должны вводить вашу фразу-пароль.

Чтобы использовать эту функцию, добавьте следующее в ваш конфигурационный файл SSH:

Шаг 3. Локальный конфиг SSH и тест подключение

Добавим локальный файл конфигурации для SSH клиента в файл .

Host rtfm
   Hostname rtfm.wiki
   Port 31337
   user dx
   IdentityFile ~/.ssh/id_rsa
   AddKeysToAgent yes
   UseKeychain yes
  • HostName – IP адрес или FQDN.
  • User – Имя учетной записи на удаленном сервере.
  • IdentityFile – Локальный путь к приватному ключу
  • Host — назовем его алиасом.

Проверка подключения

$ ssh rtfm

Особый интерес представляют опции UseKeychain и AddKeysToAgent.

Пароль приватного ключа можно хранить в «Связке ключей» (Apple KeyChain). Один раз добавили и всё — больше никогда не надо вводить никаких паролей для подключения по ssh.

В каком-то релизе (Sierra? у меня не Linux, чтобы отслеживать это) всё сломали и Terminal теперь по-умолчанию не использует keychain.

Подробности

  • https://developer.apple.com/library/archive/technotes/tn2449/_index.html

  • https://www.os-privacy.de/macos-keychain-ssh-passphrase-6388/

  • https://apple.stackexchange.com/a/250572

Опция AddKeysToAgent вышла в OpenSSH 7.2 еще в 2016 году, но я узнал про нее только сейчас.

Из changelog’а

В клиент ssh добавлена опция AddKeysToAgent, управляющая передачей в ssh-agent закрытого ключа, используемого в процессе аутентификации. Опция может принимать значения ‘yes’, ‘no’, ‘ask’, и ‘confirm’ (по умолчанию ‘no’)

Что еще важного в ссылках выше?

  • Добавить private key вручную в keychain ssh-add -K ~/.ssh/private_key_name

  • Проверить права chmod 600 ~/.ssh/id_rsa

Буду рад если кто-то более подробно разобрался в данном вопросе и дополнит заметку.

EOM

Как установить команду ssh-copy-id

Инструмент ssh-copy-id, часть пакета OpenSSH, доступен во всех основных репозиториях дистрибутива Linux, и вы можете использовать свой менеджер пакетов для установки этой команды.

Чтобы установить инструмент ssh-copy-id в Debian, используйте следующую команду:

sudo apt-get update && sudo apt-get install openssh-client

После установки OpenSSH вы можете использовать инструмент ssh-copy-id в командной строке.

$ ssh-copy-id

Usage: /usr/bin/ssh-copy-id  ]   ...] hostname         -f: force mode -- copy keys without trying to check if they are already installed         -n: dry run    -- no keys are actually copied         -h|-?: print this help

Использовать ssh-copy-id просто, потому что сценарий делает процесс аутентификации с открытым ключом более простым и эффективным. Прежде чем мы углубимся в то, как использовать инструмент, мы сначала обсудим, как работает аутентификация с открытым ключом SSH.

Примечание
Если вы уже знаете, как работает аутентификация с открытым ключом SSH, можете пропустить эту часть и подробнее узнать, как сразу же использовать команду ssh-copy-id.

Исправление проблем

Жестко закодированный DNS

Если вы видите рекламу на некоторых устройствах, а не на некоторых, попробуйте сначала перезагрузить маршрутизатор, чтобы возобновить аренду DHCP. Если вы по-прежнему видите рекламу, IP-адрес DNS-сервера может быть жестко задан на устройстве (например, Chromecast). Некоторые позволяют вам изменить это, а некоторые нет. Посмотрите в сети вашего устройства или настройках DNS, чтобы проверить, можете ли вы изменить свой IP-адрес DNS на IP-адрес вашего PiHole или даже лучше вашего интернет-шлюза (поскольку вы уже настроили его для работы через PiHole).

Нет интернета

Это произошло, когда мои карты SD вышли из строя. Если у вас нет интернета, убедитесь, что PiHole запущен, попробуйте подключиться к нему по SSH или откройте панель администратора PiHole. Если нет, попробуйте перезапустить Raspberry Pi, потянув питание. Другой вариант – восстановить IP-адреса вашего DNS-сервера на маршрутизаторе / устройстве обратно в IP-адрес вышестоящего DNS (1.1.1.1 и 1.0.0.1 для Cloudflare или оставить их пустыми, чтобы использовать DNS вашего интернет-провайдера). Если интернет работает, то проблема в настройке PiHole. Вы можете попытаться перенастроить команду pihole -r.

How ssh-copy-id works

uses the SSH protocol to connect to the target host and upload the SSH user key. The command edits the file on the server. It creates the directory if it doesn’t exist. It creates the authorized keys file if it doesn’t exist. Effectively, ssh key copied to server.

It also checks if the key already exists on the server. Unless the option is given, each key is only added to the authorized keys file once.

It further ensures that the key files have appropriate permissions. Generally, the user’s home directory or any file or directory containing keys files should not be writable by anyone else. Otherwise someone else could add new authorized keys for the user and gain access. Private key files should not be readable by anyone else.

Общие сведения о cloud-config

Формат cloud-config реализует декларативный синтаксис для общих элементов конфигурации, что упрощает выполнение многих задач. Он также позволяет добавлять произвольные команды для всего, что выходит за пределы предопределенных конфигураций.

Это позволяет файлу работать в качестве обычного конфигурационного файла, сохраняя при этом гибкость скрипта.

Форматирование YAML

Файл записывается с помощью формата сериализации данных YAML.

Файлы YAML, как правило, интуитивно понятны при чтении, но знать фактические правила написания таких файлов никогда не помешает.

Вот некоторые важные правила файлов YAML:

  • Отступы с пробелами указывают структуру и взаимосвязь элементов друг с другом. Элементы с большим отступом являются подпунктами первого элемента с меньшим отступом.
  • Список членов можно определить с помощью тире.
  • Записи массива создаются с помощью двоеточия (:), за которым следует пробел и значение.
  • Блоки текста имеют отступы. Чтобы указать, что блок должен быть прочитан с сохранением форматирования, используйте символ | перед блоком.

Попробуйте проанализировать формат этого файла cloud-config:

Во-первых, каждый файл cloud-config должен начинаться со строки #cloud-config. Это сообщает программе cloud-init, что этот файл нужно интерпретировать как файл cloud-config. В обычных файлах скриптов в первой строке указывается интерпретатор, который должен использоваться для выполнения файла.

В приведенном выше файле есть две директивы верхнего уровня, users и runcmd. Они обе служат ключами. Значения этих ключей состоят из всех отступов после них.

Значение ключа users представляет собой единый элемент списка. Вы понимаете это, потому что следующий уровень отступов отмечен символом тире (-), который указывает элемент списка, и потому, что на этом уровне отступов имеется только одно тире. В случае с директивой users это значит, что файл определяет только одного пользователя.

Сам элемент списка содержит ассоциативный массив с большим количеством пар «ключ-значение». Это одноуровневые элементы – все они существуют на одном уровне отступов. Список содержит атрибуты пользователя.

Следует отметить, что строки, которые вы видите, не требуют кавычек. Интерпретатор может довольно легко определить тип данных, а отступ указывает на отношение элементов, что легко прочитать как человеку, так и программе.

Теперь можно приступить к изучению некоторых наиболее распространенных директив cloud-config.

Заключение

Подключившись к удаленному серверу можно изменять файлы не покидая окна редактора кода, а также запускать команды в терминале удаленного сервера не переключаясь к стороннему ssh приложению.

Теперь у вас есть Visual Studio Code, настроенный для разработки на удаленном сервере с помощью SSH. Удаленное исполнение при помощи IDE обеспечивает множество преимуществ, в том числе способность быстро тестировать процесс выполнения вашего кода на различных операционных системах и с различными техническими спецификациями оборудования. Если у вас есть подключение к Интернету, вы можете подключаться к вашему серверу и работать над вашим кодом с любого компьютера, а также можете заниматься разработкой в среде Linux, даже если будете использовать Windows в качестве основной операционной системы.

Рейтинг
( Пока оценок нет )
Понравилась статья? Поделиться с друзьями:
Все про сервера
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: