Saya memiliki kunci pribadi yang dilindungi dengan kata sandi untuk mengakses server melalui SSH.
Saya memiliki 2 mesin linux (ubuntu 10.04) dan perilaku perintah ssh-add berbeda di keduanya.
Dalam satu mesin, setelah saya menggunakan "ssh-add .ssh / identitas" dan memasukkan kata sandi saya, kunci ditambahkan secara permanen, yaitu, setiap kali saya mematikan komputer dan masuk lagi, kunci sudah ditambahkan.
Yang lain, saya harus menambahkan kunci setiap kali saya masuk.
Sejauh yang saya ingat, saya melakukan hal yang sama pada keduanya. Satu-satunya perbedaan adalah bahwa kunci itu dibuat pada salah satu yang ditambahkan secara permanen.
Apakah ada yang tahu cara menambahkannya secara permanen ke mesin lain juga?
Jawaban:
Sebuah solusi akan memaksa file kunci untuk disimpan secara permanen, dengan menambahkannya dalam
~/.ssh/config
file Anda :Jika Anda tidak memiliki file 'config' di direktori ~ / .ssh, maka Anda harus membuatnya. Tidak perlu hak root, jadi cukup:
... dan masukkan baris di atas sesuai kebutuhan Anda.
Agar ini berfungsi, file harus memiliki chmod 600. Anda dapat menggunakan perintah
chmod 600 ~/.ssh/config
.Jika Anda ingin semua pengguna di komputer menggunakan kunci, masukkan baris-baris ini ke dalam
/etc/ssh/ssh_config
dan kunci dalam folder yang dapat diakses oleh semua.Selain itu jika Anda ingin mengatur kunci khusus untuk satu host, Anda dapat melakukan hal berikut di ~ / .ssh / config Anda:
Ini memiliki keuntungan ketika Anda memiliki banyak identitas yang server tidak menolak Anda karena Anda mencoba identitas yang salah terlebih dahulu. Hanya identitas spesifik yang akan dicoba.
sumber
chmod 600 config
ssh-add ~/.ssh/gitHubKey
, itu akan mengingat kata sandi utama Anda. Solusi yang saya usulkan adalah mengaturnya secara permanen di seluruh reboot.Ini tidak menjawab masalah yang sama bagi saya di bawah Mac OS X Lion. Saya akhirnya menambahkan:
Untuk .zshrc saya (tetapi. Profil juga akan baik-baik saja), yang sepertinya telah memperbaikinya.
(Seperti yang disarankan di sini: http://geek.michaelgrace.org/2011/09/permanently-add-ssh-key-ssh-add/ )
sumber
ForwardAgent yes
ke saya.ssh/config
) memecahkan masalah itu dengan fantastis. Ternyata, itu bisa sajassh-add &>/dev/null
sebagai perilaku defaultssh-add
tampaknya menambahkan kunci yang ditemukan di.ssh
folder Anda .-K
menambahkan kunci ke gantungan kunci OS X, yang digunakan OS X GUI untuk mengautentikasi ke server asing. Poster di Q itu terhubung melalui SSH Tunnel, tetapi masih terhubung ke server jauh. A - [SSH Tunnel] -> B Kasus yang saya masuki adalah saya berada di server jarak jauh tetapi ingin otentikasi bertentangan dengan kredensial pada sistem rumah saya. A <- [Auth] - B - [Connect] -> C Jadi-K
sebenarnya tidak membantu, tetapi merupakan solusi yang bagus untuk yang lain Q.Saya memecahkan masalah itu di Mac OSX (10.10) dengan menggunakan opsi -K untuk ssh-add:
Untuk macOS 10.12 dan yang lebih baru Anda perlu mengedit konfigurasi ssh Anda seperti dijelaskan di sini: https://github.com/jirsbek/SSH-keys-in-macOS-Sierra-keychain
sumber
man ssh-add
pada macOS High Sierra,ssh-add -K
akan menyimpan kata sandi ke dalam gantungan kunci, dan setelah reboot, cukup gunakanssh-add -A
, yang tidak mengharuskan Anda untuk memasukkan kata sandi Anda.Cukup tambahkan gantungan kunci, seperti yang dirujuk dalam Kiat Cepat Ubuntu https://help.ubuntu.com/community/QuickTips
Apa
Daripada terus-menerus memulai ssh-agent dan ssh-add, dimungkinkan untuk menggunakan gantungan kunci untuk mengelola kunci ssh Anda. Untuk menginstal gantungan kunci, Anda cukup klik di sini, atau gunakan Synaptic untuk melakukan pekerjaan atau apt-get dari baris perintah.
Garis komando
Cara lain untuk menginstal file adalah membuka terminal (Application-> Accessories-> Terminal) dan ketik:
Edit File
Anda kemudian harus menambahkan baris berikut ke $ {HOME} /. Bashrc atau /etc/bash.bashrc Anda:
sumber
.
adalah alias untuksource
Saya mencoba solusi @ Harun dan itu tidak berhasil bagi saya, karena itu akan menambahkan kembali kunci saya setiap kali saya membuka tab baru di terminal saya. Jadi saya memodifikasinya sedikit (perhatikan bahwa sebagian besar kunci saya juga dilindungi kata sandi sehingga saya tidak bisa mengirim output ke / dev / null):
Apa yang dilakukan adalah memeriksa cek dari
ssh-add -l
(yang mencantumkan semua kunci yang telah ditambahkan) untuk kunci tertentu dan jika tidak menemukannya, maka ditambahkan denganssh-add
.Sekarang pertama kali saya membuka terminal saya, saya diminta kata sandi untuk kunci pribadi saya dan saya tidak ditanya lagi sampai saya reboot (atau logout - saya belum memeriksa) komputer saya.
Karena saya memiliki banyak kunci, saya menyimpan output
ssh-add -l
dalam variabel untuk meningkatkan kinerja (setidaknya saya kira itu meningkatkan kinerja :))PS: Saya di linux dan kode ini pergi ke
~/.bashrc
file saya - jika Anda menggunakan Mac OS X, maka saya berasumsi Anda harus menambahkannya ke.zshrc
atau.profile
EDIT: Seperti yang ditunjukkan oleh @ Harun dalam komentar,
.zshrc
file digunakan darizsh
shell - jadi jika Anda tidak menggunakan itu (jika Anda tidak yakin, maka kemungkinan besar, Anda menggunakanbash
sebagai gantinya), kode ini harus buka.bashrc
file Anda .sumber
.zshrc
adalah untukzsh
shell, yang saya gunakan bukanbash
. Jika Anda menggunakanbash
di Mac OS X (default), itu akan ada di.bashrc
sana juga.ssh-add -l
kode kembaliecho $?
dapat digunakan untuk memutuskan apakah akan menambahkan kunci atau tidak. Im mesin linux saya dengan bash,ssh-add -l
tidak akan menampilkan nama file kunci. Kode pengembalian selalu berfungsi.Dalam kasus saya, solusinya adalah:
Seperti disebutkan dalam komentar di atas oleh generalopinion
Tidak perlu menyentuh isi file konfigurasi.
sumber
~/.ssh/config
file tersebut baca / tulis untuk pengguna, dan tidak dapat ditulis oleh orang lain.Saya memiliki masalah yang sama pada Ubuntu 16.04: beberapa kunci ditambahkan secara permanen, untuk yang lain saya harus mengeksekusi
ssh-add
pada setiap sesi. Saya menemukan bahwa kunci yang ditambahkan secara permanen memiliki kunci privat dan publik yang terletak di~/.ssh
dan kunci yang dilupakan pada setiap sesi hanya memiliki kunci privat dalam~/.ssh
dir. Jadi solusi sederhana: Anda harus menyalin baik kunci pribadi dan publik untuk~/.ssh
sebelum mengeksekusissh-add
.PS: Sejauh yang saya mengerti dari Gnome wiki metode saya berfungsi berkat alat gnome-keyring yang merupakan bagian dari Lingkungan Desktop Gnome. Oleh karena itu metode saya mungkin hanya bisa berfungsi jika Anda menggunakan DE berbasis Gnome atau Gnome.
sumber
Menambahkan baris berikut di "~ / .bashrc" memecahkan masalah bagi saya. Saya menggunakan desktop Ubuntu 14.04.
sumber
Di Ubuntu 14.04 (mungkin lebih awal, mungkin masih) Anda bahkan tidak memerlukan konsol:
seahorse
atau luncurkan hal yang Anda temukan sedang mencari "kunci"ssh
akan mengambil identitas (yaitu kunci) melalui agenssh
dengan-A
atau menjadikannya defaultsumber
Saya menjalankan Ubuntu menggunakan dua kunci id_rsa. (satu pribadi untuk bekerja). ssh-add akan mengingat satu kunci (kunci pribadi) dan melupakan perusahaan itu setiap waktu.
Melihat perbedaan antara keduanya, saya melihat kunci pribadi saya memiliki 400 hak sedangkan perusahaan satu memiliki 600 hak. (sudah u + w). Menghapus pengguna menulis langsung dari kunci perusahaan (uw atau set ke 400) memperbaiki masalah saya. ssh-add sekarang ingat kedua tombol.
sumber
Ini berhasil untuk saya.
sumber
sangat sederhana ^ _ ^ dua langkah
1.Yum menginstal gantungan kunci
2. tambahkan kode di bawah ini ke .bash_profile
sumber
Bagi mereka yang menggunakan shell Ikan Anda dapat menggunakan fungsi berikut kemudian memanggilnya
~/.config/fish/config.fish
atau dalam file konfigurasi terpisah di~/.config/fish/conf.d/loadsshkeys.fish
. Ini akan memuat semua kunci yang dimulai dengan id_rsa ke dalamssh-agent
.Jika Anda ingin
ssh-agent
memulai otomatis ketika Anda membuka terminal, Anda dapat menggunakan tuvistavie / fish-ssh-agent untuk melakukan ini.sumber