SSD Nodes Learn Hosting plans →
Mwongozo Matt ConnorNa Matt Connor · Imeboreshwa 2026-08-13

Jinsi ya kuendesha Claude Code kwa usalama kwenye seva

Claude Code ina uwezo wa kutekeleza amri yoyote kwa niaba yako. Jifunze jinsi flag ya skip permissions inavyofanya kazi na mbinu za kutumia sandbox au VPS ili kulinda seva yako.

Maana ya kuendesha Claude Code kwa usalama kwenye seva

Ili kuendesha Claude Code kwa usalama kwenye seva, weka maombi ya ruhusa yakiwa yamewashwa, iendeshe kama mtumiaji maalum asiye na upendeleo (unprivileged user), na uwekee michakato inayojiendesha yenyewe mipaka halisi badala ya kuiamini: tumia sandbox iliyojengewa ndani, container, au VPS ya muda ambayo haina data yoyote muhimu. Flag ya --dangerously-skip-permissions huondoa hatua ya uidhinishaji kati ya model na shell yako. Uamuzi huo unaweza kuwa wa busara kwa kazi zinazojiendesha, lakini ni ndani ya mpaka unaozuia kile ambacho amri moja mbaya inaweza kufikia. Mwongozo huu unaelezea kile ambacho flag hiyo inabadilisha kihalisi, na jinsi ya kujenga mpaka huo kwa hatua za kuongeza usalama.

Mambo ambayo Claude Code inaweza kufanya kwenye seva yako

Claude Code ni wakala wa uandishi wa msimbo (coding agent) unaoendeshwa kwenye terminal yako. Inasoma faili, inaandika faili, na kuendesha amri za shell kama mtumiaji aliyeianzisha. Hiyo ndiyo thamani nzima ya zana hii: inaweza kucopy repository, kuhariri msimbo, kuendesha majaribio (tests), kusoma hitilafu, na kurekebisha msimbo katika mzunguko, bila wewe kuandika kila amri. Ikiwa bado hujaianzisha kwenye seva, kuendesha Claude Code kwenye VPS kwa kutumia tmux inaelezea usakinishaji na usimamizi wa session. Ukurasa huu unaelezea uwezo unaokabidhi zana hii pindi inapokuwa hapo.

Hatari ni sentensi ileile inayosomeka mara ya pili. Mchakato unaoendesha amri za shell kama mtumiaji wako unaweza kufanya chochote ambacho mtumiaji wako anaweza kufanya. Inaweza kusoma ~/.ssh/id_ed25519, ~/.aws/credentials, na kila faili ya .env ambayo mtumiaji wako anaweza kuifungua. Inaweza kuendesha curl na kutuma data kwa host yoyote ambayo seva inaweza kuifikia. Inaweza kuendesha git push --force. Wakala huyu hana nia yake binafsi. Hatari ni kwamba kazi inaweza kwenda vibaya, au kwamba maandishi iliyosoma wakati wa kufanya kazi yalibeba maelekezo yaliyoandikwa na mtu mwingine: ukurasa wa wavuti iliyouleta, au maoni katika issue iliyoombwa kurekebishwa. Kisa hicho cha pili kinaitwa prompt injection, na ndiyo sababu "model kwa kawaida huwa na busara" si mpango wa usalama. Maelekezo yanaweza pia kufika kutoka karibu zaidi, kwa sababu session mbili za Claude Code kwenye seva moja zinaweza kutumiana maandishi, na ujumbe kutoka kwa session nyingine ni maandishi mengine tu ambayo wakala anayepokea anayasoma. Unapaswa kupanga kwa ajili ya utekelezaji mbaya, si ule wa kawaida.

Mfumo wa ruhusa kwa lugha rahisi

Kwa kawaida, Claude Code huomba idhini kabla ya kutekeleza kitendo. Kusoma faili ndani ya mradi hufanyika kimya kimya, lakini kuhariri faili au kuendesha amri ya shell hukuonyesha kwanza mabadiliko au amri husika na kusubiri jibu lako la ndiyo. Unaweza kuidhinisha kitendo kimoja, au kuidhinisha aina hiyo ya kitendo kwa kipindi chote cha session. Idhini hizo ni za muda wa session hiyo tu: ukifunga CLI, session inayofuata itaanza kwa tahadhari tena. Kwa sheria unazotaka kudumisha, faili ya settings huhifadhi orodha za kudumu za allow, ask, na deny. Kwa mfano: allow git status, ask on git push, deny reads of .env. Sheria za deny daima huwa na kipaumbele. Msingi huo unabadilika, kwa kuwa auto mode itakuwa chaguo-msingi kuanzia tarehe 14 Agosti 2026, hivyo ni muhimu kufahamu kile kila mode ya ruhusa inaruhusu kihalisi kabla ya kuamua ni ipi inapaswa kutumika kwenye seva ambayo huwezi kuisimamia.

Muundo huu unadhani kuwa kuna binadamu anayefuatilia terminal, na kwenye laptop hiyo ni kweli. Kwenye seva, mara nyingi lengo ni kwamba hakuna mtu anayefuatilia. Unaanza kazi ndefu ndani ya tmux na kwenda kulala, na wakala anayesimama kuuliza swali saa 8 usiku hatapiga hatua yoyote hadi asubuhi. Kusimama huko kunagharimu pesa na muda, kwa sababu session ya Claude Code iliyo katika hali ya kutofanya kazi hupoteza warm prompt cache yake na hatua inayofuata inagharimu gharama za kuijenga upya. Hiyo ndiyo sababu ya kweli inayowafanya watu kutumia flag ya skip kwenye seva, na tatizo linalotatuliwa ni la kweli. Sehemu iliyobaki ya mwongozo huu inahusu kulitatua bila kuondoa kila kizuizi cha usalama.

Mabadiliko yanayoletwa na --dangerously-skip-permissions

claude --dangerously-skip-permissions huzima hatua ya uthibitishaji. Marekebisho hufanyika bila ya kuomba idhini. Amri za shell huendeshwa bila ya kusubiri mwongozo. Ukaguzi wa protected-path ambao kwa kawaida hulinda maeneo nyeti pia hurukwa. Sheria zako za explicit deny bado hufanya kazi, na vitendo vichache vilivyo na hatari kubwa bado vitasimama na kuomba idhini, lakini muhtasari wa utendaji ni rahisi: chochote ambacho model itaamua kukiendesha, kitaendeshwa.

Mambo mawili kuhusu flag hii ni muhimu kwenye seva. Kwanza, imezuiwa wakati Claude Code inapoendeshwa kama root au chini ya sudo kwenye Linux na macOS, kwa sababu root asiye na vizuizi anaweza kubadilisha faili au huduma yoyote kwenye mashine. Wakala (agent) anahitaji akaunti yake isiyo na upendeleo (unprivileged account) hata hivyo, na flag hii inatekeleza hilo. Pili, flag hii haibadilishi tabia ya model kwa namna yoyote ile. Inaondoa binadamu katika mzunguko wa maamuzi na haibadilishi kitu kingine chochote, kwa hivyo kila kosa ambalo lingegunduliwa kupitia prompt sasa linatekelezwa.

Kwa hivyo, huu ndio ukweli wa mambo. Ukiruka ruhusa (permissions), swali la kiusalama hubadilika kutoka "je, wakala atafanya kitu kibaya" kwenda "ni uharibifu kiasi gani ambao kitendo kimoja kibaya kinaweza kusababisha". Unaacha kujaribu kudhibiti kila uamuzi na kuanza kudhibiti eneo la athari (blast radius). Uzuiaji (containment) ndio jibu, na unakuja kwa hatua mbalimbali.

Sandbox iliyojengewa ndani ya Claude Code

Kabla ya hatua zinazofuata, fahamu kuwa Claude Code sasa inakuja na sandbox ya kiwango cha OS kwa ajili ya amri inazozitekeleza, na hii inaondoa sababu nyingi zilizowafanya watu kutumia flag ya skip. Kwenye Linux, inatumia bubblewrap kwa ajili ya kutenga mfumo wa faili (filesystem isolation), pamoja na socat kuelekeza network traffic kupitia proxy. Ndani ya sandbox, amri inaweza kuandika kwenye saraka ya mradi na saraka ya muda ya session pekee, na inaweza kufikia mtandao kupitia proxy inayokagua kila domain dhidi ya orodha ya kuruhusiwa (allow list). Mara ya kwanza amri inapohitaji domain mpya, Claude Code itakuuliza.

Iwashe kwa kutumia amri ya /sandbox ndani ya session. Kwenye Ubuntu na Debian, sakinisha vifurushi viwili inavyohitaji kwanza:

sudo apt install bubblewrap socat

Kwenye Ubuntu 24.04 na matoleo mapya zaidi, sera ya msingi ya AppArmor inazuia bubblewrap kuunda user namespaces inazohitaji. Paneli ya sandbox itakuambia wakati kitu kinapokosekana, na nyaraka za sandboxing za Claude Code zina profile fupi ya AppArmor inayorekebisha tatizo hilo.

Sandbox ina hali ya auto-allow: amri zilizopo kwenye sandbox huendeshwa bila kuulizwa, kwa sababu mpaka uliowekwa sasa unafanya kazi ambayo ombi la ruhusa lilikuwa likifanya. Amri ambazo haziwezi kuendeshwa ndani ya sandbox hurejea kwenye mtiririko wa kawaida wa ruhusa, hivyo vitendo visivyo vya kawaida bado vitauliza ruhusa. Kwa mtiririko mwingi wa kazi za seva, hii ndiyo mbadala sahihi wa flag ya skip, kwa sababu unapata maswali machache zaidi ukiwa na mpaka uliotekelezwa na OS badala ya kutokuwa na mpaka wowote.

Kuwa mkweli kuhusu mipaka yake. Kwa chaguo-msingi, amri iliyo kwenye sandbox bado inaweza kusoma sehemu kubwa ya mfumo wa faili, ikiwemo faili za vitambulisho (credential files), isipokuwa kama utakataza njia hizo; mpangilio wa sandbox.credentials upo kwa ajili hiyo. Proxy ya mtandao hukagua majina ya domain na haichunguzi traffic yenyewe, kwa hivyo ruhusa pana kama github.com bado inatoa nafasi ya kutoa data nje. Docker haifanyi kazi ndani yake. Sandbox inainua kiwango cha usalama kwa kiasi kikubwa. Sio mpaka kamili wa kutenga (isolation boundary), ndiyo maana hatua zilizo hapa chini bado ni muhimu.

Ngazi ya utengaji

Rung tatu, kwa mpangilio wa kuongezeka kwa utengaji. Chagua ngazi ya chini kabisa inayolingana na kile kingine kilichopo kwenye seva.

Rung 1: mtumiaji maalum asiye na upendeleo (unprivileged user). Wakala hupata akaunti yake, saraka yake ya nyumbani, saraka yake ya mradi, na hana sudo:

sudo adduser --disabled-password --gecos "" agent

Mpaka wa akaunti humzuia wakala kufikia faili zako: funguo zako za SSH na kila mradi mwingine kwenye mashine. Pia hufanya flag ya skip kutumika, kwa sababu flag hiyo hukataa kufanya kazi kama root. Hii ni kanuni sawa na kuendesha kila huduma kama mtumiaji asiye na upendeleo, inayotumika kwa wakala. Kile ambacho rung 1 haikizuii: mtandao, na chochote kwenye mashine kinachoweza kusomwa na kila mtu (world-readable).

Rung 2: container. Anthropic huchapisha reference devcontainer inayoendesha Claude Code kama mtumiaji asiye root, ikiwa na sheria za firewall zinazopunguza hosts ambazo wakala anaweza kufikia, na container unayojijengea mwenyewe hufanya kazi hiyo hiyo. Mfumo wa faili hupungua hadi kwenye volumes unazopachika (mount), na egress hupungua hadi kile sheria za container zinachoruhusu. Hii ndiyo rung ya kati inayofaa wakati seva inahifadhi huduma nyingine unazozijali. Kikomo chake ni kwamba containers hushiriki kernel ya host, na mount moja isiyo makini huharibu mpaka huo; mpe container /var/run/docker.sock na ataweza kufikia host nzima.

Rung 3: VPS maalum. Rung yenye nguvu zaidi ndiyo iliyo wazi zaidi: mpe wakala mashine nzima ambayo haina chochote unachokijali. VPS ndogo hugharimu dola chache kwa mwezi. Iweke sawa kwa kutumia mwongozo wa dakika kumi za kwanza kwenye VPS mpya, piga snapshot ya hali safi, na umruhusu wakala afanye kazi. Hakuna kingine kinachoishi hapo. Hakuna ufunguo wa kibinafsi wa SSH, ni ufunguo wa deploy pekee uliowekewa wigo kwenye repository moja. Hakuna vitambulisho vya cloud, hakuna data ya uzalishaji. Operesheni ikikwama, au unapotaka kuanza upya, rudisha snapshot au haribu na ujenge upya mashine hiyo kwa dakika chache. Eneo la athari ni kodi unayolipa. Hii ndiyo usanidi ambapo --dangerously-skip-permissions huacha kutisha, kwa sababu matokeo mabaya zaidi ya kweli ni seva iliyojengwa upya na token moja iliyofutwa.

Rung hizi hujipanga. Wakala aliyetengwa (sandboxed), anayeendesha kama mtumiaji asiye na upendeleo, kwenye VPS inayoweza kutupwa, haugharimu chochote cha ziada na hufanya hadithi za kufeli kuwa za kawaida. Kawaida ndilo lengo.

Linda vitambulisho

Kanuni inayofanikisha kila kitu kingine: mtumiaji wa agent hapaswi kuwa na uwezo wa kusoma siri zinazomilikiwa na kitu kingine chochote.

Mpe agent API key na usimpe kitu kingine chochote. Iweke kwenye faili inayomilikiwa na mtumiaji wa agent ikiwa na mode 600, na uipakie shell inapoanza:

install -m 600 /dev/null /home/agent/claude.env
echo 'export ANTHROPIC_API_KEY=your-key-here' >> /home/agent/claude.env
echo 'source ~/claude.env' >> /home/agent/.bashrc

Kisha funga upande mwingine. Kwenye Debian na Ubuntu, saraka za nyumbani (home directories) mara nyingi huundwa zikiwa zinaweza kusomwa na kila mtumiaji kwenye seva, kwa hivyo kaza usalama wa saraka yako: chmod 750 /home/youruser. Hakiki kwa kutumia ls -ld /home/* na urekebishe chochote ambacho akaunti ya agent inaweza kukiorodhesha.

Weka upeo (scope) kwa kila token. GitHub token iliyopunguziwa uwezo hadi kwenye repository moja, au deploy key ya kila repository, inamaanisha kuwa credential ikivuja, unapoteza mradi mmoja tu na si akaunti yako yote. Ikiwa unatumia sandbox, ongeza mipangilio yake ya credential ili ~/.ssh na ~/.aws zikataliwe hata kwa kusoma. Na uweke credentials za production nje ya seva hiyo kabisa, kwa sababu agent hawezi kuvujisha siri ambayo haikuwepo hapo. Ikiwa siri hizo ziko kwenye password manager unayojiendeshea mwenyewe, iweke kwenye seva tofauti na ile ya agent na uifanyie ukaguzi wake, kwa sababu pointi dhaifu za Vaultwarden ni admin token na faili ya backup badala ya vault yenyewe iliyosimbwa.

Git ni wavu wa usalama

Kila mabadiliko yanayofanywa na wakala yanapaswa kuweza kukaguliwa na kutenduliwa, na git inakupa yote haya bila gharama ikiwa wakala atafanya kazi kwenye branch:

git switch -c agent/refactor-auth

Kagua utekelezaji baada ya hapo kwa kutumia git diff main...agent/refactor-auth, unganisha (merge) kile kilicho sahihi, na ufute branch ikiwa utekelezaji haukuleta matokeo. Utekelezaji uliogusa faili tatu ni rahisi zaidi kusomeka wakati wa kiamsha kinywa kuliko ule ulioandika upya nusu ya moduli, jambo ambalo ni mfano halisi wa ujuzi unaomlazimisha wakala kufanya mabadiliko madogo zaidi yanayofanya kazi. Linda branch kuu (main) upande wa jukwaa la git, ili token ya wakala isiweze ku-push kwenye branch hiyo na isiweze kufanya force-push popote. Historia ya commit inafanya kazi kama logi ya ukaguzi ya yale yaliyotokea wakati umelala, ambayo ina thamani kubwa kuliko kiasi chochote cha maandishi yaliyopita kwenye terminal.

Mtandao ni sehemu ya blast radius

Wakala (agent) anaweza kuendesha curl. Sentensi hiyo inafupisha tatizo zima la egress: chochote ambacho wakala anaweza kukisoma, anaweza pia kukituma mahali fulani, na wakala aliyedungwa prompt (prompt-injected) anaweza kufanya hivyo. Mtumiaji wa kawaida asiye na upendeleo (unprivileged user) hawezi kuzuia hili hata kidogo, kwa sababu mtumiaji yeyote anaweza kufikia chochote ambacho seva inaweza kukifikia. Sandbox huzuia hili kwa kikoa (domain) kupitia proxy yake. Container inaweza kuzuia hili kwa sheria zake za firewall. VPS iliyojitolea huzuia kile kinachoweza kuvuja kwanza, ambayo ndiyo njia thabiti zaidi kati ya hizo tatu.

Usijaribu kutatua egress kwa kutumia ufw pekee. ufw inaruhusu trafiki yote ya kutoka (outgoing) kwa chaguo-msingi, na kuandika sheria za kutoka zinazoruhusu apt, npm, git, na Claude API ni kazi ngumu inayovunjika kimya kimya. Chagua kizuizi katika ngazi ya sandbox, container, au mashine, ambapo orodha ya kuruhusu vikoa (domain allow list) au mashine tupu hufanya kazi hiyo kwa usafi.

Ikiwa unajenga wakala wako mwenyewe dhidi ya API badala ya kuendesha Claude Code, mawazo hayo hayo yanatumika bila mabadiliko. Kujenga wakala wa AI na Claude kwenye VPS inashughulikia njia hiyo, na wakala wake anastahili mtumiaji yule yule aliyejitolea, tokeni zilizowekewa wigo, na kisanduku cha kutupwa (disposable box).

Imarisha seva kwanza

Bila kujali njia unayochagua, mashine yenyewe inahitaji misingi kabla ya wakala kuingia: funguo za SSH pekee, kuzuia root login, firewall inayokataa kila kitu kwa chaguo-msingi, na masasisho ya usalama ya kiotomatiki. Tengeneza orodha yako ya ukaguzi hapa na uifanyie kazi hatua kwa hatua:

ToolHarden the box before the agent moves in

FAQ

Je, ni salama kutumia --dangerously-skip-permissions kwenye seva?

Si salama peke yake. Flag hii huondoa kila kidokezo cha idhini, kwa hivyo amri ya kwanza mbaya huanza kutekelezwa mara tu mfano (model) unapoizalisha. Inakuwa chaguo linalokubalika pale tu athari zinapokuwa zimezuiliwa: angalau utumie mtumiaji asiye na upendeleo (unprivileged user), na kwa kazi zinazofanyika bila kusimamiwa, tumia container au VPS ya muda inayoshikilia mradi mmoja na token yenye upeo mdogo. Usiitumie kamwe kwenye mashine inayoshikilia vitambulisho vya uzalishaji (production credentials) au data ambayo huwezi kumudu kuipoteza.

Je, Claude Code ina sandbox?

Ndiyo. Claude Code inakuja na sandbox iliyojengewa ndani kwa ajili ya amri za shell, inayofunguliwa kwa amri ya /sandbox. Inatumia bubblewrap kwenye Linux na Seatbelt kwenye macOS, inapunguza uwezo wa kuandika kwenye saraka ya mradi, na kuelekeza ufikiaji wa mtandao kupitia proxy inayoruhusu vikoa vilivyoidhinishwa pekee. Hali yake ya auto-allow huendesha amri zilizopo kwenye sandbox bila vidokezo, hivyo inapunguza usumbufu kama vile flag ya skip inavyofanya huku ikidumisha mpaka uliotekelezwa na mfumo wa uendeshaji. Huu si mpaka kamili wa kutengwa, kwa hivyo iunganishe na mtumiaji maalum au mashine maalum kwa ajili ya kazi zinazoendeshwa bila kusimamiwa.

Kwa nini flag ya skip inakataa kuendeshwa kama root?

Kwa sababu root asiye na vidokezo vya idhini anaweza kurekebisha faili yoyote na huduma yoyote kwenye mfumo, Claude Code huzuia --dangerously-skip-permissions inapoendeshwa kama root au chini ya sudo kwenye Linux na macOS. Suluhisho si kupinga ukaguzi huu. Unda mtumiaji asiye na upendeleo kwa ajili ya wakala (agent) na uiendeshe hapo; mpaka huo wa akaunti ndio safu ya kwanza na ya bei nafuu zaidi ya ulinzi.

Je, Claude Code inaweza kusoma funguo zangu za SSH na faili za .env?

Inaweza kusoma chochote ambacho mtumiaji inayeendeshwa naye anaweza kusoma, na hata sera ya kawaida ya sandbox inaruhusu usomaji wa njia za vitambulisho hadi utakapozikataa. Kwa hivyo, endesha wakala kama mtumiaji wake mwenyewe, weka saraka yako ya nyumbani (home directory) katika mode 750 au kali zaidi, kataa njia za vitambulisho katika mipangilio ya sandbox, na uweke siri za uzalishaji mbali kabisa na mashine hiyo. Siri ambayo sanduku haijawahi kuishikilia haiwezi kusomwa au kuvuja.

Njia salama zaidi ya kuendesha Claude Code bila kusimamiwa ni ipi?

VPS ya bei nafuu iliyojitolea kwa ajili ya kazi za wakala pekee: iliyoimarishwa kwa dakika kumi, iliyopigwa snapshot safi, inayoendesha Claude Code chini ya mtumiaji asiye na upendeleo na sandbox ikiwa imewashwa, faili ya mode-600 inayoshikilia API key, deploy key ya kila hazina (repository), na kazi zote zikiwa kwenye matawi (branches) unayoyakagua kabla ya kuunganisha. Ikiwa utekelezaji utaharibika, unafuta token moja na kurejesha snapshot, na hakuna kitu kingine unachomiliki kitakachoathirika.