Adja meg egyszer az SSH jelszót

105

Frissítés előtt

Amikor futtattam agit clone git@... -ot (ssh), egyszer számítógépen újraindítottam egy ablak párbeszédablakot, amely tartalmaz egy szövegmezőt az SSH jelszó beillesztéséhez, és megerősítve az OK gombbal. Ezután a jelszó használata már nem volt szükséges a rendszerem következő kezdetéig.

A frissítés után 13.10-re

Az Ubuntu 13.10-re történő frissítés után az ablak nem jelenik meg többé, de megjelenik egy üzenet a terminálban:

Enter passphrase for key '/home/username/.ssh/id_rsa': 

... minden alkalommal, amikor egy git-tároló klónozása megjelenik.

Hogyan tudom megjavítani ezt? Csak egyszer szeretnék megadni a jelszavamat.

    
készlet Ionică Bizău 20.10.2013 08:32
forrás

7 válasz

120
  

Frissítés: hibát jelez 13.10-től:

     

link

Mindenesetre a következő parancsok futtatásával a probléma fix lett:

Hogyan kell kijavítani

Ezt a következő parancsok megadásával rögzítettem:

$ ssh-agent bash

Ez létrehoz egy új bash eljárást, amely lehetővé teszi a privát kulcsok hozzáadását. Új privát kulcs hozzáadásakor egyszer és csak egyszer kérik a jelszót.

És akkor:

$ ssh-add /home/username/.ssh/id_rsa
Enter passphrase for /home/username/.ssh/id_rsa: 
Identity added: /home/username/.ssh/id_rsa (/home/username/.ssh/id_rsa)

... ahol ausername a felhasználónéved. Ugyanígy teheted a$USER változót:

$ ssh-add /home/$USER/.ssh/id_rsa

Alternatív megoldásként csak a~ -t használja a saját könyvtárában.

$ ssh-add ~/.ssh/id_rsa

És a probléma rögzült.

    
válasz adott Ionică Bizău 20.10.2013 08:41
forrás
27

Ez az Atlassian dokumentum rögzítette a számomra az Ubuntu 14.04 kiszolgálói verzióját:

Csak adja meg ezeket az értékeket a.bashrc fájlba:

SSH_ENV=$HOME/.ssh/environment

# start the ssh-agent
function start_agent {
    echo "Initializing new SSH agent..."
    # spawn ssh-agent
    /usr/bin/ssh-agent | sed 's/^echo/#echo/' > "${SSH_ENV}"
    echo succeeded
    chmod 600 "${SSH_ENV}"
    . "${SSH_ENV}" > /dev/null
    /usr/bin/ssh-add
}

if [ -f "${SSH_ENV}" ]; then
     . "${SSH_ENV}" > /dev/null
     ps -ef | grep ${SSH_AGENT_PID} | grep ssh-agent$ > /dev/null || {
        start_agent;
    }
else
    start_agent;
fi

A bejelentkezés után egyszer csak jelszó kérése és gyorsítótárazása. Nem kell minden alkalommal beírnia.

    
válasz adott Arda 10.06.2015 11:07
forrás
23

0) Rövid válasz

Add hozzá a.ssh/config one sort az elején:

AddKeysToAgent yes

és futtassa a git / ssh / ... futtatását. Ha ez nem elég, ellenőrizze az ssh verziót, és ellenőrizze, hogy az ssh-agent betöltötte-e ezeket az utasításokat:

1) Ellenőrizze az openssh verziót

Először ellenőrizd, hogy az ssh verzióodnak nagyobbnak kell lennie a 7.2-ig:

ssh -V

2) Szerkessze a konfigurációs fájlt

Ha ez a helyzet, írja be az elején a.ssh/config one sort:

AddKeysToAgent yes

3) Ellenőrizze, hogy az ssh-agent már nyitva van

Általában a terjesztések automatikusan betöltik az ssh-ügynököt. Ennek ellenőrzéséhez futtassa

ps aux | grep -v grep | grep ssh-agent

Ha nem látja az azt tartalmazó sort, be kell töltenie azt a következő futtatással:

eval $(ssh-agent)

Vegye figyelembe, hogy ez az ügynök csak az aktuális terminálon engedélyezi az ügyintézőt, így mindenhol elérhetővé teheti ezt a sort a~/.profile fájlban és újraindíthatja.

    
válasz adott tobiasBora 25.11.2016 19:32
forrás
20

A hiba megoldásának megoldása az alábbiakhoz való hozzáadás: ~/.bashrc

eval 'gnome-keyring-daemon --start'
    
válasz adott Alex Collins 28.02.2014 21:52
forrás
3

A halhéj használhatják ezt a script , hogy ugyanezt tegye.

# content has to be in .config/fish/config.fish
# if it does not exist, create the file
setenv SSH_ENV $HOME/.ssh/environment

function start_agent                                                                                                                                                                    
    echo "Initializing new SSH agent ..."
    ssh-agent -c | sed 's/^echo/#echo/' > $SSH_ENV
    echo "succeeded"
    chmod 600 $SSH_ENV 
    . $SSH_ENV > /dev/null
    ssh-add
end

function test_identities                                                                                                                                                                
    ssh-add -l | grep "The agent has no identities" > /dev/null
    if [ $status -eq 0 ]
        ssh-add
        if [ $status -eq 2 ]
            start_agent
        end
    end
end

if [ -n "$SSH_AGENT_PID" ] 
    ps -ef | grep $SSH_AGENT_PID | grep ssh-agent > /dev/null
    if [ $status -eq 0 ]
        test_identities
    end  
else
    if [ -f $SSH_ENV ]
        . $SSH_ENV > /dev/null
    end  
    ps -ef | grep $SSH_AGENT_PID | grep -v grep | grep ssh-agent > /dev/null
    if [ $status -eq 0 ]
        test_identities
    else 
        start_agent
    end  
end
    
válasz adott Daniel Gerber 07.09.2015 13:53
forrás
0

Ezt használom:

vim ~/.profile

eval '/usr/bin/gnome-keyring-daemon --start --components=pkcs11,secrets,ssh,gpg'
export SSH_AUTH_SOCK
export GPG_AGENT_INFO
    
válasz adott Carlos Silva 07.10.2015 11:00
forrás
0

Ha az azure .ppk fájlt használja

Csak konvertálja a pem-be, és adja hozzá a 400 engedélyt egyszerű lépésekkel:

sudo apt-get install putty
puttygen <path_to_key>/keyname.ppk -O private-openssh -o <path>/aws_key.pem
sudo chmod 400 <path>/aws_key.pem
ssh -vi aws_key.pem ubuntu@<ip_address>
    
válasz adott GrvTyagi 25.05.2016 08:49
forrás