Olvery

Документация к платформе «Olvery»

Инструменты пользователя

Инструменты сайта


runbooks:tpark-it-reconcile-test

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слеваПредыдущая версия
runbooks:tpark-it-reconcile-test [2026/10/02 00:27] – Kt2U: прямой SSH-маршрут Olvery test и граница доверия host key Boris Rudakovrunbooks:tpark-it-reconcile-test [2026/10/02 04:11] (текущий) – 2u1L: правило владельца SSH и клиентский рецепт Boris Rudakov
Строка 20: Строка 20:
 ===== SSH-маршрут Olvery test ===== ===== SSH-маршрут Olvery test =====
  
-Прямой маршрут — **root@srv-app.olvr**, без перехода через ''gw1''. Используйте собственный разрешённый project SSH key и существующий OpenSSH ''known_hosts'' своего operator; чужую ''.ssh'' не изменяйте.+Прямой маршрут — **root@srv-app.olvr**, без перехода через ''gw1''. Используйте собственный разрешённый project SSH key и штатный OpenSSH ''known_hosts'' своего operator; чужую ''.ssh'' не изменяйте.
  
-Перед командой задайте ''PROJECT_SSH_KEY'' как путь к своему ключу, а ''PROJECT_KNOWN_HOSTS'' — как путь к существующему carrier с разрешённой записью этого target:+Действует правило владельца команды из ''/home/olvr/HANDBOOK.md'', раздел «SSH: правило владельца», решение ''2u1L/hrBEmT''. Независимую сверку fingerprint и подтверждение через доверенную консоль не выполнять, не запрашивать и не делать условием работы. Новый target не требует предварительно подтверждённой записи. 
 + 
 +Перед командами задайте ''PROJECT_SSH_KEY'' как путь к своему ключу, а ''PROJECT_KNOWN_HOSTS'' — как штатный путь ''known_hosts'' своего operator. Клиент использует ''StrictHostKeyChecking=accept-new'': новый ключ принимается штатно, изменение уже известного ключа не скрывается.
  
 <code bash> <code bash>
 : "${PROJECT_SSH_KEY:?Укажите путь к собственному project SSH key}" : "${PROJECT_SSH_KEY:?Укажите путь к собственному project SSH key}"
-: "${PROJECT_KNOWN_HOSTS:?Укажите существующий OpenSSH known_hosts}"+: "${PROJECT_KNOWN_HOSTS:?Укажите штатный путь OpenSSH known_hosts своего operator}"
 ssh -F /dev/null -i "$PROJECT_SSH_KEY" \ ssh -F /dev/null -i "$PROJECT_SSH_KEY" \
   -o BatchMode=yes -o ConnectTimeout=10 \   -o BatchMode=yes -o ConnectTimeout=10 \
-  -o StrictHostKeyChecking=yes \+  -o StrictHostKeyChecking=accept-new \
   -o UserKnownHostsFile="$PROJECT_KNOWN_HOSTS" \   -o UserKnownHostsFile="$PROJECT_KNOWN_HOSTS" \
   root@srv-app.olvr 'hostname'   root@srv-app.olvr 'hostname'
 </code> </code>
  
-Точный сохранённый пример: ''zIBX/fP8y5V'', 01.10.2026 23:40:25 UTC; исполнитель использовал собственные ''/home/zIBX/.ssh/id_ed25519'' и ''/home/zIBX/.ssh/known_hosts-Z0Ix''. Эти пути — provenance выполненной команды, не инструкция создавать отдельный реестр или использовать чужие файлы. Успешный прямой маршрут со строгой проверкой закреплён в ''Z0Ix/ojhIxI'' от 01.10.2026 23:59:05 UTC.+Единственная оговорка — изменение уже известного host key: проверить, что переинсталляция этого сервера нам известна, затем перейти на новый ключ в своём штатном ''known_hosts'' и сохранить краткую запись «ключи сменились, перешли на новые». Если известного факта переинсталляции нет, не обходить штатный отказ и не переходить молча; сообщить РП только этот факт, без запроса fingerprint, доверенной консоли или нового поручения на верификацию. ''StrictHostKeyChecking=no/off'' и отбрасывание ''known_hosts'' не заменяют этот рецепт.
  
-**Наблюдённый ED25519 fingerprint:** ''SHA256:Ge9TS9DP0M09BK4unYE8GbV3v0ni7ZmjfKv3IqzKbNQ''.+Отказ авторизации — отдельный факт доступа; он не создаёт поручения на верификацию SSH-ключей. Адресная проверка ''hostname'' ниже относится к правильности target и фактическому доступу.
  
-Применение переданной публичной записи для test разрешено РП OLVR: ''zIBX/USeeDT'', 01.10.2026 23:39:06 UTC. **Это разрешение применения, не независимое подтверждение подлинности хоста.** Происхождение первоначального доверия остаётся неизвестным; строгая проверка закреплённого ключа эту границу не снимает. Отдельное независимое подтверждение не является условием этой документационной записи.+**Сохранённое историческое наблюдение.** Точный пример: ''zIBX/fP8y5V'', 01.10.2026 23:40:25 UTC; исполнитель использовал собственные ''/home/zIBX/.ssh/id_ed25519'' и ''/home/zIBX/.ssh/known_hosts-Z0Ix''. Эти пути — provenance выполненной команды, не инструкция использовать чужие файлы или создавать новый реестр. Успешный прямой маршрут со строгой проверкой наблюдался в ''Z0Ix/ojhIxI'' от 01.10.2026 23:59:05 UTC; нынешний клиентский рецепт выше не переписывает результат той команды.
  
-При отсутствующей записи, изменившемся ключе или отказе авторизации остановиться на штатном отказе SSH и передать РП OLVR точный недостающий вход. Не отключать host-key checking, не принимать новый ключ автоматически и не заменять имеющийся. Carrier проверки — OpenSSH ''known_hosts''; fingerprint здесь — датированный evidence, а не второй реестр доверия.+Наблюдённый тогда ED25519 fingerprint: ''SHA256:Ge9TS9DP0M09BK4unYE8GbV3v0ni7ZmjfKv3IqzKbNQ''. Применение переданной публичной записи для test было разрешено РП OLVR: ''zIBX/USeeDT'', 01.10.2026 23:39:06 UTC. Независимое подтверждение подлинности хоста тогда не выполнялось; новое поручение из этого исторического факта не следует.
  
-Запись сохранена в Card ''Kt2U''. Нового подключения для её публикации не выполнялось. Она относится только к test; ''vIup'' проверяет другой target — production ''srv-prod-app.olvr'' — и не является prerequisite этого маршрута.+Документационная запись сохранена в Card ''Kt2U''; нового подключения для её публикации не выполнялось. ''vIup'' по production ''srv-prod-app.olvr'' отменена, не является prerequisite этого маршрута и не объявляется выполненной.
  
 ===== Адресная проверка (read-only) ===== ===== Адресная проверка (read-only) =====
Строка 49: Строка 51:
  
 <code bash> <code bash>
-ssh -o BatchMode=yes -o ConnectTimeout=10 root@srv-app.olvr 'hostname' +ssh -F /dev/null -i "$PROJECT_SSH_KEY" -o BatchMode=yes -o ConnectTimeout=10 -o StrictHostKeyChecking=accept-new -o UserKnownHostsFile="$PROJECT_KNOWN_HOSTS" root@srv-app.olvr 'hostname' 
-ssh root@srv-app.olvr 'systemctl cat tpark-it-reconcile.service' +ssh -F /dev/null -i "$PROJECT_SSH_KEY" -o BatchMode=yes -o ConnectTimeout=10 -o StrictHostKeyChecking=accept-new -o UserKnownHostsFile="$PROJECT_KNOWN_HOSTS" root@srv-app.olvr 'systemctl cat tpark-it-reconcile.service' 
-ssh root@srv-app.olvr 'systemctl is-enabled tpark-it-reconcile.service' +ssh -F /dev/null -i "$PROJECT_SSH_KEY" -o BatchMode=yes -o ConnectTimeout=10 -o StrictHostKeyChecking=accept-new -o UserKnownHostsFile="$PROJECT_KNOWN_HOSTS" root@srv-app.olvr 'systemctl is-enabled tpark-it-reconcile.service' 
-ssh root@srv-app.olvr 'systemctl show tpark-it-reconcile.service -p ActiveState -p SubState -p Result -p After' +ssh -F /dev/null -i "$PROJECT_SSH_KEY" -o BatchMode=yes -o ConnectTimeout=10 -o StrictHostKeyChecking=accept-new -o UserKnownHostsFile="$PROJECT_KNOWN_HOSTS" root@srv-app.olvr 'systemctl show tpark-it-reconcile.service -p ActiveState -p SubState -p Result -p After' 
-ssh root@srv-app.olvr 'cat /usr/local/sbin/tpark-it-reconcile.sh; /bin/bash -n /usr/local/sbin/tpark-it-reconcile.sh' +ssh -F /dev/null -i "$PROJECT_SSH_KEY" -o BatchMode=yes -o ConnectTimeout=10 -o StrictHostKeyChecking=accept-new -o UserKnownHostsFile="$PROJECT_KNOWN_HOSTS" root@srv-app.olvr 'cat /usr/local/sbin/tpark-it-reconcile.sh; /bin/bash -n /usr/local/sbin/tpark-it-reconcile.sh' 
-ssh root@srv-app.olvr 'docker ps -a --filter "name=^/tpark-it\." --format "{{.Names}} state={{.State}}"' +ssh -F /dev/null -i "$PROJECT_SSH_KEY" -o BatchMode=yes -o ConnectTimeout=10 -o StrictHostKeyChecking=accept-new -o UserKnownHostsFile="$PROJECT_KNOWN_HOSTS" root@srv-app.olvr 'docker ps -a --filter "name=^/tpark-it\." --format "{{.Names}} state={{.State}}"' 
-ssh root@srv-app.olvr 'docker ps -a --filter "name=^/tpark-it\." --filter status=exited --format "{{.Names}}"' +ssh -F /dev/null -i "$PROJECT_SSH_KEY" -o BatchMode=yes -o ConnectTimeout=10 -o StrictHostKeyChecking=accept-new -o UserKnownHostsFile="$PROJECT_KNOWN_HOSTS" root@srv-app.olvr 'docker ps -a --filter "name=^/tpark-it\." --filter status=exited --format "{{.Names}}"' 
-ssh root@srv-app.olvr 'journalctl -u tpark-it-reconcile.service -b --no-pager'+ssh -F /dev/null -i "$PROJECT_SSH_KEY" -o BatchMode=yes -o ConnectTimeout=10 -o StrictHostKeyChecking=accept-new -o UserKnownHostsFile="$PROJECT_KNOWN_HOSTS" root@srv-app.olvr 'journalctl -u tpark-it-reconcile.service -b --no-pager'
 </code> </code>
  
Строка 68: Строка 70:
  
 <code bash> <code bash>
-ssh root@srv-app.olvr 'systemctl restart tpark-it-reconcile.service' +ssh -F /dev/null -i "$PROJECT_SSH_KEY" -o BatchMode=yes -o ConnectTimeout=10 -o StrictHostKeyChecking=accept-new -o UserKnownHostsFile="$PROJECT_KNOWN_HOSTS" root@srv-app.olvr 'systemctl restart tpark-it-reconcile.service' 
-ssh root@srv-app.olvr 'systemctl show tpark-it-reconcile.service -p ActiveState -p SubState -p Result; journalctl -u tpark-it-reconcile.service -b --no-pager; docker ps -a --filter "name=^/tpark-it\." --format "{{.Names}} state={{.State}}"'+ssh -F /dev/null -i "$PROJECT_SSH_KEY" -o BatchMode=yes -o ConnectTimeout=10 -o StrictHostKeyChecking=accept-new -o UserKnownHostsFile="$PROJECT_KNOWN_HOSTS" root@srv-app.olvr 'systemctl show tpark-it-reconcile.service -p ActiveState -p SubState -p Result; journalctl -u tpark-it-reconcile.service -b --no-pager; docker ps -a --filter "name=^/tpark-it\." --format "{{.Names}} state={{.State}}"'
 </code> </code>
  
runbooks/tpark-it-reconcile-test.1790900837.txt.gz · Последнее изменение: — Boris Rudakov

Если не указано иное, содержимое этой вики предоставляется на условиях следующей лицензии: GNU Free Documentation License 1.3
GNU Free Documentation License 1.3 Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki