Pertanyaan Masukkan frasa sandi SSH sekali


Sebelum meningkatkan

Ketika saya sedang berlari git clone git@... (menggunakan ssh) sekali per komputer restart dialog jendela muncul berisi textbox untuk memasukkan kata sandi SSH saya dan dikonfirmasikan dengan OK. Maka passphrase itu tidak lagi diperlukan sampai awal sistem saya berikutnya.

Setelah meningkatkan ke 13.10

Setelah meningkatkan ke Ubuntu 13.10 jendela itu tidak muncul lagi tetapi pesan di terminal muncul:

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

... setiap kali ketika mengkloning repositori git ini muncul.

Bagaimana saya bisa memperbaiki ini? Saya ingin memasukkan kata sandi saya hanya sekali.


105
2017-10-20 06:32


asal


Saya pikir Anda harus menggunakan ssh-add perintah untuk itu. Sudahkah Anda mencobanya? - devius
Saya mencoba ssh-agent bash + ssh-add. Itu hanya berfungsi selama beberapa menit. - Ionică Bizău
Saya mengalami masalah yang sama. Saya pikir ini mungkin konflik antara ssh-agent OpenSSH dan Gnome Keyring Daemon. - devius
Bug terkait: bugs.launchpad.net/ubuntu/+source/libpam-ssh/+bug/1247169 - devius
Menambahkan AddKeysToAgent yes untuk .ssh / config bekerja untuk saya. - xslittlegrass


Jawaban:


Pembaruan: tampaknya bug dari 13.10:

https://bugs.launchpad.net/ubuntu/+source/libpam-ssh/+bug/1247169


Pokoknya menjalankan perintah berikut masalah sudah diperbaiki untuk saya:

Bagaimana cara memperbaiki

Saya memperbaiki ini dengan memasukkan perintah berikut:

$ ssh-agent bash

Ini menciptakan proses bash baru yang memungkinkan Anda menambahkan kunci pribadi. Saat menambahkan kunci pribadi baru Anda akan diminta untuk kata sandi sekali dan hanya sekali.

Lalu:

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

...dimana username adalah nama pengguna Anda. Anda dapat melakukan hal yang sama menggunakan $USER variabel:

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

Atau, gunakan saja ~ untuk direktori home Anda.

$ ssh-add ~/.ssh/id_rsa

Dan masalahnya sudah diperbaiki.


120
2017-10-20 06:41



Ini tidak memecahkan masalah sama sekali. Itu hanya menambahkan identitas ke agen sampai Anda keluar dari terminal. Jika Anda membuka terminal baru Anda harus ssh-add lagi. - devius
@devius Ya, sepertinya bug. Tapi, perintah di atas memperbaiki masalah saya ... - Ionică Bizău
Jadi untuk memperjelas: Dengan "memperbaiki" ini Anda tidak perlu mengetikkan kata sandi di terminal itu lagi. Saat Anda membuka terminal baru - Anda harus memberikan kata sandi lagi. - harijay
Saya mencoba $ ssh-add /home/username/.ssh/id_rsa (tanpa ssh-agent bash) dan berhasil bahkan setelah membuka kembali terminal. Tetapi solusi lengkap untuk saya adalah yang satu ini stackoverflow.com/a/4246809/532252. Semuanya baik-baik saja bahkan setelah me-reboot mesin. - kishie
Saya baru saja mengetik ssh-add di terminal. Tidak perlu beralih ke bash ssh-agent atau tentukan file id_rsa - henry74


Dokumen Atlassian ini memperbaiki masalah untuk saya di Ubuntu 14.04 Server Edition:

Cukup tambahkan nilai ini ke Anda .bashrc mengajukan:

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

Dan setelah masuk, ia hanya meminta kata sandi dan cache. Anda tidak perlu memasukkannya setiap saat.


27
2018-06-10 09:07



Ini sepertinya bekerja pada distro lain, seperti saya baru saja berhasil menggunakan jawaban ini di Sabayon Linux. - BH2017
Terima kasih! Solusi ini bekerja untuk saya pada sistem ubuntu di mana gnome-keyring-daemon tidak berfungsi karena masalah dbus-daemon. Secara khusus, saya mendapatkan kesalahan ini "** Pesan: tidak dapat terhubung ke bus sesi dbus: Tidak dapat melakukan autolaunch dbus-daemon tanpa $ DISPLAY untuk X11" dan setelah mengatur variabel lingkungan tampilan yang saya dapatkan "** Pesan: couldn dapat terhubung ke bus sesi dbus: // bin / dbus-peluncuran diakhiri secara tidak normal dengan kesalahan berikut: Kesalahan autolaunch: Inisialisasi X11 gagal. " - user207863
Ini membutuhkan lebih banyak upvote, memperbaiki masalah pada virtualisasi Ubuntu 16.04 baik. - Niels Keurentjes
Ini memperbaiki masalah untuk saya di Bash untuk Windows juga. Saya mencoba meluncurkan Bash beberapa kali dan itu mengingat kata sandi. Belum mencoba memulai ulang. - Amr
setelah mencoba semua solusi lain, ini berhasil bagi saya. Ini harus menjadi solusi bagi OP - João Pimentel Ferreira


0) Jawaban singkat

Tambahkan di Anda .ssh/config satu baris di awal:

AddKeysToAgent yes

dan jalankan git / ssh / ... Jika tidak cukup, periksa versi ssh Anda dan periksa apakah ssh-agent dimuat dengan petunjuk ini:

1) Periksa versi openssh

Pertama periksa apakah versi ssh Anda, itu harus lebih besar dari 7,2:

ssh -V

2) Edit file konfigurasi

Jika itu kasusnya hanya menambahkan Anda .ssh/config satu baris di awal:

AddKeysToAgent yes

3) Periksa apakah ssh-agent sudah terbuka

Biasanya distribusi secara otomatis memuat ssh-agent. Untuk memeriksanya, jalankan

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

Jika Anda tidak melihat baris apa pun yang berisi, Anda perlu memuatnya dengan menjalankan:

eval $(ssh-agent)

Perhatikan bahwa ini memungkinkan agen hanya pada terminal saat ini, sehingga untuk mengaktifkannya di mana-mana, Anda dapat mencoba menambahkan baris ini di Anda ~/.profile file dan reboot.


23
2017-11-25 18:32



AddKeysToAgent yes adalah jawaban kanonis pasca-2016 - dan persis apa yang kebanyakan pengguna modern inginkan. Ini pertengahan 2017. Ubuntu> = 16.04 (Xenial Xerus) sekarang merupakan asumsi yang masuk akal. Kebanyakan instalasi OpenSSH di alam liar sekarang mendukung opsi ini. Ad-hoc shell script kludges dari jenis yang diadvokasi oleh setiap jawaban lain untuk pertanyaan ini sangat ... yg ketinggalan jaman. </sigh> - Cecil Curry


Sebuah solusi untuk bug ini adalah menambahkan yang berikut ke bawah ~/.bashrc

eval `gnome-keyring-daemon --start`

20
2018-02-28 20:52



Bukankah seharusnya gnome keyring hanya menjadi bagian dari sesi Anda? - Pavel Šimerda
Jika Anda berbicara tentang 'harus', maka Pertanyaan ini seharusnya tidak berada di tempat pertama, jika semuanya sempurna - Anwar
Tidak yakin apakah ini milik .bashrc. Sepertinya Anda harus menambahkannya ke dalam file profil DE - Dmitry Ginzburg


Pengguna dari cangkang ikan dapat menggunakan ini naskah untuk melakukan hal yang sama.

# 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

3
2017-09-07 11:53





Saya menggunakan ini:

vim ~/.profile

eval `/usr/bin/gnome-keyring-daemon --start --components=pkcs11,secrets,ssh,gpg`
export SSH_AUTH_SOCK
export GPG_AGENT_INFO

0
2017-10-07 09:00





Jika Anda menggunakan file biru .ppk

Cukup ubah menjadi pem dan tambahkan izin 400 dengan langkah-langkah mudah:

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>

0
2018-05-25 06:49