---
title: "Bir uygulamanın trading anahtarını ve gizli değerlerini sunucunun diskinden uzak tutun"
description: "erpc worker, trading anahtarını ve gizli değerleri 1Password'de, işletim sisteminin anahtar zincirinde ya da şifreli keystore'da saklar ve bellekte iletir."
canonical: "https://erpc.global/tr/doc/erpc-cli/worker-secrets/"
locale: "tr"
---

# Bir uygulamanın trading anahtarını ve gizli değerlerini sunucunun diskinden uzak tutun

`erpc worker`, bir uygulamanın trading anahtarını ve gizli değerlerini 1Password'de, anahtar zincirinizde ya da şifreli bir keystore'da saklar ve bunları uygulamaya bellekte iletir; sunucunun diskine ise asla.

Bu sayfada bir ön sürüm olan ERPC CLI `v0.1.0-rc.4` anlatılır.

## Trading anahtarı uygulamaya nasıl ulaşır

Cüzdanı olan bir uygulama, anahtarını başladığında bir pipe üzerinden alır. Sunucuda `wallet.json`, `.env` ya da bir kopya yoktur. erpc anahtarı hiçbir diske şifrelenmemiş olarak yazmaz: anahtarı koyduğu tek dosya, makinenizde, parola ifadenizle şifrelenmiş olan keystore dosyasıdır.

- **Nerede saklanır:** `erpc worker key new`, `erpc login` oturumu 1Password'de tutuyorsa anahtarı orada, değilse anahtar zincirinde, o da değilse keystore'da oluşturur. `erpc.toml`, anahtarın referansını ve açık anahtarını kaydeder.
- **Sunucuda:** erpc worker ajanı anahtarı yalnızca bellekte tutar. Kendini döküm alınamaz hale getirir, belleğini kilitler ve anahtarı uygulamaya bir dosya tanımlayıcısı üzerinden iletir; uygulama okuduktan sonra anahtarı siler.
- **Sunucu yeniden başlatıldıktan sonra** worker kilitli olarak geri gelir: `erpc worker start` anahtarı yeniden gönderene kadar uygulama çalışmaz. Başarısız olan ya da öldürülen bir ajanı systemd yeniden başlatır ve ajan aynı şekilde kilitli olarak geri gelir.
- **Bir paket güncellemesi worker'ı yeniden başlatmaz.** `deploy`, `needrestart` aracına worker birimlerine dokunmamasını söyler: bu araç otomatik modunda bu birimleri erteler, terminalde sorulduğunda ise bunlar için varsayılan yanıtı hayırdır; böylece gözetimsiz bir güvenlik güncellemesi uygulamayı yeniden başlatmaz. Bu kural yazılamadığında dağıtım bunu bildirir ve devam eder; worker bu durumda bu koruma olmadan çalışır.

Trading anahtarını `[wallet]` belirtir, başka hiçbir şey belirtmez ve erpc onu yalnızca terminal başındaki bir kişi için okur: bir yapay zekâ aracı için okumaz, bir 1Password hizmet hesabıyla da okumaz. `[wallet]` referansını belirten ya da `.wallet` ile biten bir `keychain:` veya `keystore:` hesabını belirten bir `[secrets]` satırı reddedilir. Keystore'da anahtar olarak saklanan bir kayıt, gizli değer olarak açılmaz. 1Password'de ve başka bir ada sahip bir anahtar zinciri hesabında ise hiçbir şey bir anahtarı işaretlemez: `[wallet]` içermeyen ve böyle bir öğeyi `[secrets]` altında belirten bir `erpc.toml`, o öğenin gizli değer olarak okunmasına yol açar.

## Değerlerin nerede saklanacağını seçin

1Password isteğe bağlıdır. `erpc worker key new` ve `erpc worker secret put`, `--store` bir yer belirtmedikçe (`--store 1password --vault <id>`, `--store keychain`, `--store keystore`), kendilerine verileni aşağıdakilerden geçerli olan ilkinde saklar:

1. **1Password**, `erpc login` oturumu orada tuttuğunda ya da `--vault` verildiğinde.
2. **İşletim sisteminin anahtar zinciri**, bir değeri makine yeniden başlatıldıktan sonra da sakladığı yerlerde: macOS, Windows ve giriş yapılmış bir oturumda masaüstü anahtarlığı bulunan Linux.
3. **erpc'nin keystore'u**, böyle bir anahtarlığı olmayan bir Linux makinesinde: headless bir sunucu, WSL, bir SSH girişi. Böyle bir makinede `--store keychain` reddedilir.

Anahtar zincirinde ya da keystore'da anahtar yalnızca o tek makinede bulunur; kopyası ve eşitlemesi yoktur ve başka bir makine bir `keychain:` veya `keystore:` referansını okuyamaz.

Kaybolan ya da silinen bir makine, cüzdanın kaybı demektir: cüzdanda az tutun ya da kasaya oturum açmış her makinenin okuyabildiği 1Password'ü kullanın. 1Password'de `erpc login --store 1password-desktop` ile, masaüstü uygulamasının olmadığı yerlerde ise `op signin` ile oturum açın.

Bir 1Password hizmet hesabı bir uygulamanın gizli değerlerini tutabilir, ancak erpc bir trading anahtarını hizmet hesabıyla okumaz. 1Password ile her okuma uygulamada bir onay istemi gösterebilir ve erpc beklerken bir bekleme göstergesi görüntüler.

## Gizli değer saklayın

API token'ları ve RPC anahtarları gibi gizli değerler de aynı şekilde saklanır, ancak uygulamaya bir pipe üzerinden değil, ortam değişkenleri olarak ulaşır. `erpc worker secret put <NAME>` değeri saklar; `erpc.toml` içindeki `[secrets]` ise yalnızca değerin referansını tutar.

```bash
erpc worker secret put API_TOKEN --generate          # the bot's own API token, made for you and shown to nobody
erpc worker secret put ERPC_API_KEY --from-account   # the account's RPC key, read from your account (or SOLANA_RPC_ENDPOINT in [vars])
```

- **`--generate`** değeri oluşturur: 64 onaltılık karakter olarak 32 rastgele bayt.
- **`--from-account`**, hesabınızın RPC anahtarlarından paylaşımlı RPC'nin kabul ettiği ilkini saklar. Anahtarlar sırayla, önce birincil anahtar olmak üzere, her biri için bir `getHealth` ile ve yanıt için 8 saniye süre verilerek denenir. 401 veya 403 yanıtı alan bir anahtar reddedilir ve sıradaki denenir; yalnızca RPC'nin kabul ettiği bir anahtar saklanır. Komut, bunun hesabın birincil anahtarı mı yoksa başka bir anahtar mı olduğunu söyler (`--json` ile `account_key`).
- İki değer de yazdırılmaz, `--json` ile de yazdırılmaz. Keystore'un ilk kullanımı ya da kilitli bir keystore, terminal başında bir kişi gerektirir.
- Anahtarlar bu makineden denenir; bu yüzden sunucunun adresiyle sınırlandırılmış bir anahtar, orada çalışsa da burada reddedilir. Tüm anahtarlar reddedildiğinde `--from-account` hiçbir şey saklamaz; kastettiğiniz anahtarı, ekranda görünmeyecek şekilde yazarak ya da pipe ile vererek elle saklarsınız. RPC'ye sorulamadığında hiçbir şey saklamaz ve `erpc.toml` olduğu gibi kalır; aynı komutu yeniden çalıştırın.

Bir anahtarı elle saklamak için:

```bash
erpc worker secret put ERPC_API_KEY        # asks for the value, unseen
```

- `--replace`, zaten ayarlanmış bir ad için yeni bir değer saklar. `erpc worker secret list`, gizli ayarları adlarıyla ve her birinin nerede saklandığıyla listeler.
- Bir veri hattının sağladığı bir ayar (`GRPC_ENDPOINT`, `SHREDS_ENDPOINT`, `SOLANA_SEND_RPC_ENDPOINT`) asla gizli değer değildir: onu `--grpc`, `--shreds` ve `--unlimited` ayarlar.

`[secrets]` veya `[wallet]` içindeki bir referans şunlardan biridir:

| Referans | Değerin bulunduğu yer |
| --- | --- |
| `op://<vault-id>/<item-id>/<field>` | 1Password, kasa ve öğe kimliğiyle |
| `keychain:<service>/<account>` | Değeri saklayan makinenin işletim sistemi anahtar zinciri |
| `keystore:<service>/<account>` | Değeri saklayan makinedeki erpc keystore'u |

## Keystore

Keystore, `~/.erpc/keystore` dizinidir (`ERPC_HOME` ayarlandığında onun altındaki `keystore`). Linux ve macOS'ta dizinlerinin izni `0700`, dosyalarınınki `0600` olur; Windows'ta erpc kendine ait hiçbir izin ayarlamaz.

- `master.json`, parola ifadenizden PBKDF2-HMAC-SHA256'nın (600.000 yineleme) türettiği bir anahtarla mühürlenmiş, rastgele 32 baytlık bir ana anahtar tutar. Her kayıt, kendine ait bir anahtarla, ChaCha20-Poly1305 kullanılarak mühürlenmiş tek bir değer tutar.
- **Parola ifadesi:** keystore'u kullanan ilk `key new` veya `secret put`, onu seçmenizi ister; terminalde iki kez yazılır ve en az 12 karakter olmalıdır. erpc onu yalnızca bu gizli istemden alır; asla bir argümandan, bir ortam değişkeninden ya da bir pipe'tan almaz.
- **Linux'ta kilit açma:** parola ifadesi keystore'u bir kez açtıktan sonra kilit açma, çekirdeğin kalıcı anahtarlığında, bellekte tutulur; bu, makine yeniden başlayana, anahtarlık boşta kalma süresi dolacak kadar kullanılmadan kalana (sistem aksini söylemedikçe üç gün) ya da `erpc worker secret lock` çalıştırılana kadar sürer. `erpc worker secret unlock` parola ifadesini önceden sorar ve kilidin ne zamana kadar açık kalacağını söyler. Kendi girişi olmadan başlatılan bir kabukta (`-` olmadan `su`, `sudo -E`) kilit açma tutulmaz ve her komut sorar.
- **Terminal başında kimse yokken**, keystore'a ihtiyaç duyan bir komut, varsa kilit açmayı kullanır; yoksa `erpc worker secret unlock` komutunu belirterek başarısız olur. Kilidi açık bir keystore gizli değerleri teslim eder, trading anahtarını teslim etmez.
- **macOS ve Windows'ta** (`--store keystore`) kilit açma tutulmaz: keystore'a ihtiyaç duyan her komut parola ifadesini bir kez sorar ve bu yüzden bir terminal gerektirir.

### Keystore neyi korur, neyi korumaz

- **`keystore` dizinini yedekleyin ve parola ifadesini unutmayın.** erpc ikisini de kurtaramaz ve ikisi birlikte elinizde olmadıkça keystore'un tuttukları kaybolur.
- Keystore dosyalarına ve parola ifadesine sahip olan herkes anahtara sahiptir. PBKDF2 her tahmini yavaşlatır, ancak tahmin edilebilir bir parola ifadesini güvenli hale getirmez.
- Keystore'un kilidi açıkken, sizin kullanıcınız olarak çalışan herhangi bir program ana anahtarı çekirdek anahtarlığından okuyabilir (oturumu anahtarlığınızı içermeyen bir program onu kendine bağlayabilir) ve bir anahtarın kaydı da dahil her kaydı açabilir. erpc'nin kendi kuralları (`[wallet]` bölümünün belirttiği anahtarı yalnızca terminal başındaki bir kişi için okumak, asla bir yapay zekâ aracı için okumamak; keystore'da saklanan bir anahtarı asla gizli değer olarak açmamak) erpc'nin yaptığı şeydir; sizin kullanıcınız olarak çalışan diğer programları bağlamaz. İşiniz bittiğinde `erpc worker secret lock` çalıştırın.
- Kayıt adları gizlenmez ve bir kaydın boyutu, değerin ne kadar uzun olduğunu gösterir.
- Değiştirilmiş bir dosya açılmaz; aynı kaydın daha eski bir kopyası onun yerine konursa açılır.
- `erpc worker secret rm`, bir gizli değerin keystore kaydını `erpc.toml` içindeki satırıyla birlikte siler (uygulamanın başka bir ayarı aynı kaydı belirtmiyorsa) ve 1Password'deki ya da anahtar zincirindeki bir değeri olduğu yerde bırakır. Diski temizlemez ve yedeklerinizdeki kopyalar kalır.
- erpc bir trading anahtarının kaydını asla silmez ve üzerine yazmaz. Bir anahtarı değiştirmek için fonları taşıyın, ardından anahtarın dosyasını ve `[wallet]` bölümünü kendiniz kaldırın.
- Keystore'da ya da anahtar zincirinde bir ayara, büyük-küçük harf fark etmeksizin `WALLET` adı verilemez; `--store 1password` bu adı kabul eder.

## Trading anahtarıyla çalışın

| Komut | Ne yapar |
| --- | --- |
| `erpc worker key new` | Trading anahtarını oluşturur ve fonlanacak açık anahtarı yazdırır |
| `erpc worker key import <FILE>` | Bir anahtar dosyasını 1Password'e, anahtar zincirine ya da keystore'a taşır, ardından dosyayı silmeyi önerir |
| `erpc worker key show` | Anahtarın açık anahtarını ve nerede saklandığını gösterir |
| `erpc worker key balance` | Anahtarın bakiyesini, uygulamanın kendi RPC ayarı üzerinden gösterir |
| `erpc worker key send --to <ADDRESS> --sol <N>` | Terminalde evet yanıtınızdan sonra tek bir transferi bellekte imzalar. `--all` ücret dışındaki her şeyi gönderir |

erpc bir transferin gerçekleşip gerçekleşmediğini bilmeden sona erdiğinde, yeniden göndermeden önce transferin imzasını sorgulayın: ikinci bir gönderim, ikinci bir transferdir.
