---
title: "Jak bezpečně předat konfigurační soubor vývojáři"
url: https://uselinkpilot.com/cs/blog/how-to-securely-deliver-a-config-file-to-a-developer
description: "Oddělte nastavení od tajných hodnot, ty pošlete jednorázovým odkazem nebo přílohou, která se po jednom stažení zničí, a soubor .env nedávejte do gitu."
lang: cs
---

Bezpečnost (https://uselinkpilot.com/cs/blog/category/security)

# Jak bezpečně předat konfigurační soubor vývojáři

Oddělte nastavení od tajných hodnot, ty pošlete jednorázovým odkazem nebo přílohou, která se po jednom stažení zničí, a soubor .env nedávejte do gitu.

LinkPilot Team (https://uselinkpilot.com/cs/author/linkpilot-team) · Lidé, kteří vyvíjejí a provozují LinkPilot ve společnosti TetraCore, LLC 26. října 2026 · O LinkPilotu (https://uselinkpilot.com/cs/about)

Do týmu nastoupí nový vývojář nebo začne pracovat externista a první, co potřebuje, je soubor `.env`, bez kterého projekt nespustí. Ten soubor obvykle míchá neškodná nastavení s nejcitlivějšími hodnotami, které tým má. Proto tak často skončí v soukromé zprávě nebo jako příloha e-mailu s předmětem „config“.

Pokud chcete konfigurační soubor předat vývojáři bezpečně, berte ho jako dvě různé věci: nastavení, která mohou putovat kudykoli, a tajné hodnoty, které se pošlou jednou, a to kanálem, který si neponechává kopie. Tento návod popisuje, jak obě části oddělit, jak poslat tu tajnou a co vývojáři říct, aby soubor zůstal v bezpečí i poté, co k němu dorazí.

## Čtěte soubor, jako by byl každý řádek veřejný

Otevřete soubor a každý řádek zařaďte do jedné ze dvou skupin.

- **Nastavení**: úrovně logování, porty, přepínače funkcí, adresy neprodukčních služeb, veřejná ID klientů. Patří do repozitáře jako vzorový soubor a můžete je poslat jakkoli.
- **Tajné hodnoty**: hesla k databázím, klíče API, podpisové klíče, soukromé klíče, tajné klíče klientů OAuth, cokoli, co dává přístup. Vyhledejte `PASSWORD`, `SECRET`, `TOKEN`, `KEY` a `PRIVATE` a pak si přečtěte i zbytek, protože připojovací řetězec s vloženým heslem na sebe nijak neupozorní.

Pak si ujasněte, na čem bude vývojář pracovat. Lokální vývoj proti stagingu potřebuje hodnoty pro staging. Nepotřebuje produkční klíče a nepotřebuje ani ostrý klíč platební brány jen proto, že ho soubor náhodou obsahuje.

## Tajné hodnoty do souboru v repozitáři nepatří

Soubor `.env.example` v repozitáři popisuje každou proměnnou se zástupnou hodnotou. Skutečné hodnoty se dodávají za běhu z prostředí, ze správce důvěrných údajů nebo z úložiště důvěrných údajů platformy. Díky tomu předáváte jen tajné hodnoty a jediné místo, kde jsou pohromadě, je lokální kopie vývojáře.

```bash
# .env.example (committed)
DATABASE_URL=postgres://app:CHANGE_ME@staging-db.internal:5432/app
STRIPE_SECRET_KEY=sk_test_CHANGE_ME
SESSION_SECRET=CHANGE_ME
LOG_LEVEL=debug
```

Přidejte `.env` do `.gitignore` dřív, než má kdokoli skutečný soubor, a zvažte pre-commit hook, například gitleaks, aby omylem vytvořený commit hned selhal.

## Kde to jde, dejte vývojáři vlastní přihlašovací údaje

Předání je zároveň příležitost přestat údaje sdílet. Pokud databáze podporuje jednotlivé uživatele, vytvořte vývojáři vlastního uživatele s oprávněními, která jeho práce vyžaduje, a s datem vypršení platnosti. Pokud API nabízí klíče s omezeným oprávněním, vydejte jeden na jeho jméno. Tento postup popisuje návod k přístupu externisty do databáze (https://uselinkpilot.com/cs/blog/how-to-send-a-temporary-database-login-to-a-contractor-securely). Přihlašovací údaje vytvořené pro jednoho člověka jde jednomu člověku také odebrat.

## Jak tajné hodnoty předat

Fungují dvě cesty a obě se vyhnou tomu, aby soubor zůstal ve zprávě.

**Vložte tajné řádky do jednorázového odkazu.** Otevřete nástroj pro tajné odkazy (https://uselinkpilot.com/cs/tools/free-secret-link-generator), vložte jen řádky s tajnými hodnotami a vytvořte odkaz. Text se zašifruje ve vašem prohlížeči ještě před uložením, uložená kopie se zničí při prvním otevření odkazu, a pokud odkaz nikdo neotevře, jeho platnost vyprší po hodině, po 24 hodinách nebo po sedmi dnech. Bez účtu se vejde až 10 000 znaků, což na většinu souborů `.env` stačí několikrát.

**Přiložte k tajnému odkazu celý soubor.** Z přihlášeného účtu LinkPilot můžete k tajné zprávě přiložit až tři soubory po 9 MB. Každý soubor se zašifruje ve vašem prohlížeči klíčem odvozeným od klíče tajné zprávy, takže server nikdy nemá soubor v čitelné podobě, a příloha se po jediném stažení smaže. Tato cesta je lepší, když soubor musí dorazit bajt po bajtu, například soubor servisního účtu ve formátu JSON nebo úložiště klíčů (keystore).

V obou případech:

1. **Ověřte vývojáře** přes kanál, kterým probíhal nábor nebo uzavření smlouvy, ne přes adresu, ze které o soubor požádal.
2. **Nastavte vypršení platnosti** na dobu, kdy odkaz opravdu použije. Hodinu, pokud čeká, den, pokud je v jiném časovém pásmu.
3. **Nastavte limit zobrazení na jedno.**
4. **S tarifem Pro přidejte heslovou frázi** u produkčních hodnot a pošlete ji jiným kanálem.
5. **Pošlete odkaz s jednořádkovou poznámkou**, co obsahuje a kam soubor patří. Netajná nastavení pošlete zvlášť, nebo odkažte na vzorový soubor v repozitáři.

Pozvánka do trezoru je lepší cesta, když jde o vývojáře ve stálém poměru a váš tým už používá správce důvěrných údajů s přístupem pro každého vývojáře zvlášť. Jednorázový odkaz použijte pro období, než se to nastaví, a pro každého, kdo přístup do trezoru nikdy mít nebude.

## Řekněte vývojáři, kam soubor patří

I čisté předání může skončit špatně, pokud soubor skončí ve sdílené složce. Spolu s údaji pro připojení pošlete tyto pokyny:

- **Uložte ho jako `.env` do kořene projektu** a nikam jinam. Před prvním commitem zkontrolujte, zda ho pokrývá `.gitignore`.
- **Nevkládejte hodnoty do tiketů ani do chatu**, abyste ověřili, jestli jsou správné. Chybějící nebo neplatnou proměnnou nahlaste jen názvem a odesílatel vydá novou hodnotu.
- **Při odchodu se hodnoty mění.** Až spolupráce skončí, hodnoty z toho souboru se vymění. Řekněte to předem, ať nikoho nepřekvapí.

## Potvrzení a úklid

Požádejte vývojáře, aby potvrdil název souboru, prostředí a nějakou netajnou značku, například komentář s verzí na prvním řádku. Pokud jednorázový odkaz hlásí, že byl otevřen dřív, než se k němu dostal, považujte každou hodnotu v něm za vyzrazenou a vyměňte ji.

Po dokončení předání zneplatněte každý odkaz, který nikdo neotevřel, odstraňte všechny dočasné kopie, které jste si vytvořili, a zapište, kdo a kdy dostal hodnoty kterého prostředí. Tento záznam je auditní stopa. Samotný soubor by měl existovat jen na počítači, který ho potřebuje.

## Související články

- Jak bezpečně sdílet klíče API: https://uselinkpilot.com/cs/blog/how-to-share-api-keys-securely
- Bezpečné sdílení odkazů pro vývojáře: https://uselinkpilot.com/cs/blog/secure-link-sharing-for-developers
- Jak vytvořit dočasný zabezpečený odkaz pro sdílení souborů: https://uselinkpilot.com/cs/blog/how-to-create-a-temporary-secure-link-for-sharing-files
- Jak fungují jednorázové tajné odkazy: https://uselinkpilot.com/cs/blog/how-one-time-secret-links-work

## Nástroje k tomuto článku

Generátor jednorázových tajných odkazů

Pošlete heslo nebo poznámku odkazem, který se otevře jen jednou.
https://uselinkpilot.com/cs/tools/free-secret-link-generator

Samozničující zpráva

Pošlete poznámku, která po jednom přečtení zmizí.
https://uselinkpilot.com/cs/tools/burn-after-read-secret

Generátor dočasných odkazů

Vytvořte odkaz, který v nastavený čas přestane fungovat.
https://uselinkpilot.com/cs/tools/temporary-link

## Časté dotazy

### Je bezpečné poslat konfigurační soubor e-mailem?

### Mají tajné hodnoty v konfiguračním souboru vůbec být?

### Jak nejbezpečněji sdílet soubor .env s externistou?

### Mám konfigurační soubor před sdílením zašifrovat?

### Jak ověřím, že vývojář dostal správný soubor?

### Co dělat, když soubor odešel nesprávnému člověku?

## LinkPilot pošle tajný odkaz, který po otevření zmizí.

Zašifruje se ve vašem prohlížeči, zobrazí se jednou a pak se zničí. Bez účtu.

Vytvořit tajný odkaz (https://uselinkpilot.com/cs/tools/free-secret-link-generator)

## Čtěte dál

Bezpečnost

### Jak zavést bezpečné sdílení tajných zpráv v týmu na dálku

Bezpečné sdílení tajných zpráv v týmu na dálku v pěti krocích: soupis, trezor či jednorázový odkaz podle životnosti, tři pravidla, Slack a plán pro úniky.
https://uselinkpilot.com/cs/blog/how-to-implement-secure-secret-sharing-for-remote-teams

Bezpečnost

### Jak bezpečně předávat přihlašovací údaje mezi týmy

Bezpečné předávání přihlašovacích údajů mezi týmy: trezor, nebo jednorázový odkaz podle použití, omezená oprávnění, určený vlastník a včasné zneplatnění.
https://uselinkpilot.com/cs/blog/how-to-create-a-secure-way-to-hand-off-credentials-between-teams

Sledování odkazů

### Jak spravovat odkazy s vlastní doménou pro více klientů

Jak agentura spravuje odkazy s vlastní doménou pro klienty: pracovní prostor a doména pro každého, oddělené role a kontrolní seznam pro odchod klienta.
https://uselinkpilot.com/cs/blog/how-to-manage-branded-urls-across-multiple-client-accounts

## Structured data

```json
[
  {
    "@context": "https://schema.org",
    "@type": "BreadcrumbList",
    "itemListElement": [
      {
        "@type": "ListItem",
        "position": 1,
        "name": "Domů",
        "item": "https://uselinkpilot.com/cs"
      },
      {
        "@type": "ListItem",
        "position": 2,
        "name": "Blog",
        "item": "https://uselinkpilot.com/cs/blog"
      },
      {
        "@type": "ListItem",
        "position": 3,
        "name": "Jak bezpečně předat konfigurační soubor vývojáři",
        "item": "https://uselinkpilot.com/cs/blog/how-to-securely-deliver-a-config-file-to-a-developer"
      }
    ]
  },
  {
    "@context": "https://schema.org",
    "@type": "BlogPosting",
    "@id": "https://uselinkpilot.com/cs/blog/how-to-securely-deliver-a-config-file-to-a-developer#article",
    "headline": "Jak bezpečně předat konfigurační soubor vývojáři",
    "description": "Oddělte nastavení od tajných hodnot, ty pošlete jednorázovým odkazem nebo přílohou, která se po jednom stažení zničí, a soubor .env nedávejte do gitu.",
    "inLanguage": "cs",
    "datePublished": "2026-10-26",
    "dateModified": "2026-10-26",
    "image": "https://uselinkpilot.com/logo-512.png",
    "author": {
      "@type": "Organization",
      "@id": "https://uselinkpilot.com/author/linkpilot-team#organization",
      "name": "LinkPilot Team",
      "url": "https://uselinkpilot.com/cs/author/linkpilot-team"
    },
    "publisher": {
      "@type": "Organization",
      "name": "LinkPilot",
      "url": "https://uselinkpilot.com",
      "logo": {
        "@type": "ImageObject",
        "url": "https://uselinkpilot.com/logo-512.png",
        "width": 512,
        "height": 512
      }
    },
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://uselinkpilot.com/cs/blog/how-to-securely-deliver-a-config-file-to-a-developer"
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "FAQPage",
    "mainEntity": [
      {
        "@type": "Question",
        "name": "Je bezpečné poslat konfigurační soubor e-mailem?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Ne, pokud obsahuje ostré tajné hodnoty. E-mail uchovává kopie v obou e-mailových schránkách, na všech synchronizovaných zařízeních a v zálohách za nimi. Tajné hodnoty pošlete jednorázovým odkazem a e-mail nechte pro nastavení, která tajná nejsou."
        }
      },
      {
        "@type": "Question",
        "name": "Mají tajné hodnoty v konfiguračním souboru vůbec být?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Jen pokud to aplikace vyžaduje. V souboru v repozitáři mějte raději zástupné hodnoty a skutečné hodnoty dodávejte za běhu z prostředí nebo ze správce důvěrných údajů. Vzorový soubor v repozitáři popisuje strukturu, tajné hodnoty putují zvlášť."
        }
      },
      {
        "@type": "Question",
        "name": "Jak nejbezpečněji sdílet soubor .env s externistou?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Ověřte jeho totožnost, dejte mu vlastní přihlašovací údaje omezené na prostředí, které potřebuje, pošlete tyto hodnoty jednorázovým odkazem a řekněte mu, kam soubor patří a že se nesmí nikdy dostat do commitu."
        }
      },
      {
        "@type": "Question",
        "name": "Mám konfigurační soubor před sdílením zašifrovat?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Pokud ho přiložíte k tajnému odkazu LinkPilot, zašifruje se ve vašem prohlížeči ještě před nahráním a po jednom stažení se zničí, takže žádný další krok není potřeba. Pokud použijete jiný kanál, zašifrujte ho nástrojem, jako je age, nebo zaheslovaným archivem a heslovou frázi pošlete jinou cestou."
        }
      },
      {
        "@type": "Question",
        "name": "Jak ověřím, že vývojář dostal správný soubor?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Požádejte ho, aby potvrdil název souboru, prostředí a netajnou značku, například komentář s verzí na začátku souboru. Nikdy po něm nechtějte, aby vám obsah poslal zpět."
        }
      },
      {
        "@type": "Question",
        "name": "Co dělat, když soubor odešel nesprávnému člověku?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Vyměňte každou tajnou hodnotu v souboru v systémech, které ji přijímají, a pak aktualizujte nasazení, která používala staré hodnoty. Samotný soubor už vzít zpět nejde."
        }
      }
    ],
    "inLanguage": "cs"
  },
  {
    "@context": "https://schema.org",
    "@type": "SoftwareApplication",
    "@id": "https://uselinkpilot.com/#software",
    "name": "LinkPilot",
    "applicationCategory": "BusinessApplication",
    "operatingSystem": "Web",
    "description": "LinkPilot is a secure link management platform for creating branded short links, tracking engagement, and sharing secrets with expiring, protected, self-destructing links.",
    "url": "https://uselinkpilot.com",
    "offers": [
      {
        "@type": "Offer",
        "name": "Free",
        "price": "0",
        "priceCurrency": "USD",
        "url": "https://uselinkpilot.com/pricing"
      },
      {
        "@type": "Offer",
        "name": "Pro",
        "price": "29",
        "priceCurrency": "USD",
        "priceSpecification": {
          "@type": "UnitPriceSpecification",
          "price": "29",
          "priceCurrency": "USD",
          "billingDuration": "P1M"
        },
        "url": "https://uselinkpilot.com/pricing"
      },
      {
        "@type": "Offer",
        "name": "Agency",
        "price": "299",
        "priceCurrency": "USD",
        "priceSpecification": {
          "@type": "UnitPriceSpecification",
          "price": "299",
          "priceCurrency": "USD",
          "billingDuration": "P1M"
        },
        "url": "https://uselinkpilot.com/pricing"
      },
      {
        "@type": "Offer",
        "name": "Agency Plus",
        "price": "799",
        "priceCurrency": "USD",
        "priceSpecification": {
          "@type": "UnitPriceSpecification",
          "price": "799",
          "priceCurrency": "USD",
          "billingDuration": "P1M"
        },
        "url": "https://uselinkpilot.com/pricing"
      },
      {
        "@type": "Offer",
        "name": "Pro (yearly)",
        "price": "288",
        "priceCurrency": "USD",
        "priceSpecification": {
          "@type": "UnitPriceSpecification",
          "price": "288",
          "priceCurrency": "USD",
          "billingDuration": "P1Y"
        },
        "url": "https://uselinkpilot.com/pricing"
      },
      {
        "@type": "Offer",
        "name": "Agency (yearly)",
        "price": "2988",
        "priceCurrency": "USD",
        "priceSpecification": {
          "@type": "UnitPriceSpecification",
          "price": "2988",
          "priceCurrency": "USD",
          "billingDuration": "P1Y"
        },
        "url": "https://uselinkpilot.com/pricing"
      },
      {
        "@type": "Offer",
        "name": "Agency Plus (yearly)",
        "price": "7980",
        "priceCurrency": "USD",
        "priceSpecification": {
          "@type": "UnitPriceSpecification",
          "price": "7980",
          "priceCurrency": "USD",
          "billingDuration": "P1Y"
        },
        "url": "https://uselinkpilot.com/pricing"
      },
      {
        "@type": "Offer",
        "name": "Enterprise",
        "priceSpecification": {
          "@type": "PriceSpecification",
          "priceCurrency": "USD"
        },
        "url": "https://uselinkpilot.com/pricing"
      }
    ]
  },
  {
    "@context": "https://schema.org",
    "@type": "Organization",
    "@id": "https://uselinkpilot.com/#organization",
    "name": "LinkPilot",
    "alternateName": "LinkPilot by TetraCore",
    "url": "https://uselinkpilot.com",
    "contactPoint": {
      "@type": "ContactPoint",
      "contactType": "customer support",
      "email": "support@uselinkpilot.com",
      "url": "https://uselinkpilot.com/support"
    },
    "parentOrganization": {
      "@type": "Organization",
      "@id": "https://tetracorehq.com/#organization",
      "name": "TetraCore",
      "url": "https://tetracorehq.com/"
    },
    "logo": {
      "@type": "ImageObject",
      "url": "https://uselinkpilot.com/logo-512.png",
      "width": 512,
      "height": 512
    },
    "description": "LinkPilot is a secure link management platform for creating branded short links, tracking engagement, and sharing secrets with expiring, protected, self-destructing links.",
    "sameAs": [
      "https://x.com/uselinkpilot",
      "https://www.linkedin.com/company/uselinkpilot",
      "https://facebook.com/uselinkpilot",
      "https://github.com/TetraCoreHQ/linkpilot-cli",
      "https://github.com/TetraCoreHQ/linkpilot-mcp",
      "https://www.npmjs.com/package/linkpilot",
      "https://www.npmjs.com/package/@uselinkpilot/sdk",
      "https://www.npmjs.com/package/@uselinkpilot/mcp",
      "https://chromewebstore.google.com/detail/linkpilot-short-links-and/mnmppadihpcncicldpkmgknhnjkondad",
      "https://addons.mozilla.org/en-US/firefox/addon/uselinkpilot/"
    ]
  },
  {
    "@context": "https://schema.org",
    "@type": "WebSite",
    "name": "LinkPilot",
    "url": "https://uselinkpilot.com",
    "potentialAction": {
      "@type": "SearchAction",
      "target": "https://uselinkpilot.com/blog?q={search_term_string}",
      "query-input": "required name=search_term_string"
    }
  }
]
```