Bir kez SSH şifresini girin

105

Yeni sürüme geçmeden önce

Bilgisayarım başına bir kez git clone [email protected] (ssh kullanarak) çalıştırdığımda, SSH parolamı eklemek için bir metin kutusu içeren bir pencere iletişim kutusu belirir ve OK ile onaylanır. Daha sonra sistemimin bir sonraki başlangıcına kadar parola gerekli değildi.

13.10’a yükselttikten sonra

Ubuntu 13.10'a yükselttikten sonra artık pencere görünmüyor fakat terminalde bir mesaj beliriyor:

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

... her zaman bir git deposunu klonlarken görünür.

Bunu nasıl düzeltebilirim? Parolamı yalnızca bir kez girmek istiyorum.

    
sordu Ionică Bizău 20.10.2013 08:32

7 cevap

120
  

Güncelleme: 13.10'dan bir hata gibi görünüyor:

     

İşte

Aşağıdaki komutları çalıştırarak sorun benim için düzeltildi:

Nasıl düzeltilir?

Aşağıdaki komutları girerek bunu çözdüm:

$ ssh-agent bash

Bu, özel anahtar eklemenize olanak tanıyan yeni bir bash süreci oluşturur. Yeni bir özel anahtar eklerken, parola için bir kez ve yalnızca bir kez istenir.

Ve sonra:

$ 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)

... username kullanıcı adınız. % Co_de% değişkeni kullanarak da aynısını yapabilirsiniz:

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

Alternatif olarak, ana dizininiz için $USER kullanın.

$ ssh-add ~/.ssh/id_rsa

Ve sorun düzeltildi.

    
verilen cevap Ionică Bizău 20.10.2013 08:41
27

Bu Atlassian belgesi , Ubuntu 14.04 Sunucu Sürümü'nde benim için sorunu çözdü:

Sadece bu değerleri .bashrc dosyanıza ekleyin:

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

Giriş yaptıktan sonra şifre sadece bir kez sorar ve önbelleğe alır. Her seferinde girmeniz gerekmez.

    
verilen cevap Arda 10.06.2015 11:07
23

0) Kısa cevap

En başında .ssh/config bir satır ekleyin:

AddKeysToAgent yes

ve git / ssh / ... 'ı çalıştırın. Eğer yeterli değilse, ssh sürümünüzü kontrol edin ve ssh-agent'ın şu talimatlarla dolu olduğunu kontrol edin:

1) openssh sürümünü kontrol edin

Öncelikle ssh sürümünüzün, 7,2'ye eşit büyüklükte olması gerektiğini kontrol edin:

ssh -V

2) Yapılandırma dosyasını düzenleyin

Durum buysa, .ssh/config bir satırını en baştan ekleyiniz:

AddKeysToAgent yes

3) ssh-aracısının zaten açık olup olmadığını kontrol edin

Genellikle dağıtımlar bir ssh aracını otomatik olarak yükler. Kontrol etmek için

çalıştırın
ps aux | grep -v grep | grep ssh-agent

İçinde herhangi bir satır görmüyorsanız, aşağıdakileri yüklemeniz gerekir:

eval $(ssh-agent)

Bunun aracıyı yalnızca geçerli terminalde etkinleştirdiğini unutmayın. Bu nedenle, her yerde etkinleştirmek için bu satırı ~/.profile dosyanıza eklemeyi ve yeniden başlatmayı deneyebilirsiniz.

    
verilen cevap tobiasBora 25.11.2016 19:32
20

Bu hatanın bir çözümü aşağıda aşağıdakine eklemek ~/.bashrc

eval 'gnome-keyring-daemon --start'
    
verilen cevap Alex Collins 28.02.2014 21:52
3

Balık kabuğunun kullanıcıları, bu kullanabilir aynı şeyi yapmak için komut dosyası .

# 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
    
verilen cevap Daniel Gerber 07.09.2015 13:53
0

Bunu kullanıyorum:

vim ~/.profile

eval '/usr/bin/gnome-keyring-daemon --start --components=pkcs11,secrets,ssh,gpg'
export SSH_AUTH_SOCK
export GPG_AGENT_INFO
    
verilen cevap Carlos Silva 07.10.2015 11:00
0

Azure .ppk dosyasını kullanırsanız

Sadece pem'e dönüştürün ve basit adımlarla 400 iznini ekleyin:

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 [email protected]<ip_address>
    
verilen cevap GrvTyagi 25.05.2016 08:49

Etiketlerdeki diğer soruları oku