it-swarm-eu.dev

Jak se vyhnout požadavku na přístupové fráze pokaždé, když jsem tlačil na Bitbucket

Nastavil jsem své ssh věci pomocí tento průvodce , a to fungovalo dobře (mohl jsem běžet hg Push bez požadavku na přístupové fráze). Co se mohlo od té doby do dneška stát, vzhledem k tomu, že stále používám stejný domovský adresář.

$ cat .hg/hgrc 
[paths]
default = ssh://[email protected]/tshepang/bloog

$ hg Push
Enter passphrase for key '/home/wena/.ssh/id_rsa': 
pushing to ssh://[email protected]/tshepang/bloog
searching for changes
...
238
tshepang

Musíte použít agenta ssh. Krátká odpověď: zkuste

$ ssh-add

před tlačením. Na požádání uveďte přístupové heslo.

Pokud ještě nespouštíte agenta ssh, zobrazí se následující zpráva:

Could not open a connection to your authentication agent.

V takovém případě můžete jeden spustit a tak nastavit své prostředí

eval $(ssh-agent)

Pak opakujte ssh-add příkaz.

Vyplatí se podívat na ssh agent manpage .

363
jmtd

Způsob, jak to vyřešit, je pomocí ssh-agent a ssh-add:

$ exec ssh-agent bash
$ ssh-add
Enter passphrase for ~/.ssh/id_rsa: 

Poté je přístupová fráze uložena pro aktuální relaci. a nebudeme se na to znovu ptát.

48
stefano

Používám Keychain pro správu ssh klíčů. Je také k dispozici v Debianu a pravděpodobně tedy s Ubuntu

apt-get install keychain

Tady je stránka balíčku s klíči pro Debian . Jak vidíte, projekt není příliš aktivní, ale pracuje pro mě. Také jsem o tom trochu komentoval v jiné odpovědi zde

29
Faheem Mitha

Vytvořte (nebo upravte, pokud existuje) následující ~/.ssh/konfigurační soubor:

Host *
    UseKeychain yes
    AddKeysToAgent yes
    IdentityFile ~/.ssh/id_rsa
20
ness-EE

Pro větší pohodlí je optimální metoda kombinací odpovědí jmtd a Faheem .

Použitím ssh-agent sám znamená, že nová instance ssh-agent musí být vytvořen pro každý nový otevřený terminál. keychain po inicializaci požádá o přístupové heslo pro soukromý klíč (klíče) a uloží jej. Tímto způsobem je váš soukromý klíč chráněn heslem, ale nebudete muset znovu a znovu zadávat heslo.

Arch wiki doporučuje inicializovat klíčenku od /etc/profile.d/ nebo váš profil Shell, například .bash_profile nebo .bashrc. To má nevýhodu v tom, že zahajuje vaši klíčenku, jakmile otevřete terminál.

Flexibilnější přístup je kombinovat keychain se specifickou tmux relací. Takže v .bash_profile:

tsess=$(tmux ls 2>&1)

if [[ "${tsess%%:*}" = "secured" ]] && 
   [[ -f $HOME/.keychain/$HOSTNAME-sh ]]; then
    # start keychain
    /usr/bin/keychain -Q -q --nogui ~/.ssh/id_rsa
    . $HOME/.keychain/$HOSTNAME-sh
fi

... a pak je to jen případ spuštění zabezpečené relace tmux podle potřeby (spuštěno z klíčence):

#!/bin/bash
PID=$(pgrep tmux)
new="tmux -f $HOME/.tmux/conf new -s secured"
old="tmux attach -t secured -d"

if [[ -z "$SSH_AUTH_SOCK" ]]; then
    eval `ssh-agent`
    trap "kill $SSH_AGENT_PID" 0
fi

if [[ -z "$PID" ]]; then
    urxvtc -title "SSH" -e sh -c "${new}"
else
    urxvtc -title "SSH" -e sh -c "${old}"
fi

ssh-add

Nyní bude vaše klíčenka inicializována pouze jednou, když spustíte tuto konkrétní tmux relaci. Dokud tato relace přetrvává, budete mít přístup k těmto klíčům ssh a Push to do vzdálených úložišť.

6
jasonwryan

Můžete použít sshpass:

$ Sudo apt-get install sshpass
$ sshpass -p 'password' ssh [email protected]

Stačí přidat sshpass -p yourpassphrase před připojením obvyklého příkazu ssh.

0
belka