Langkah 1
Pastikan agen lokal Anda siap
Hanya karena Anda dapat ssh ke server benteng Anda tanpa menentukan jalur kunci Anda atau diminta kata sandi, tidak berarti bahwa agen ssh Anda menjalankan dan menahan kunci Anda. Beberapa OS modern (mis: OSX) menangani ini untuk Anda.
Di mesin lokal Anda
$ ssh-add -L
ssh-rsa ObahfCbvagGbLbhSbeHfvatEBG13== ~/.ssh/mykey.pem
ssh-rsa LbhNerWhfgJnnlGbbPyrireEBG13== ~/.ssh/sharedkey.pem
gbr.1
Itu berarti agen Anda sedang berjalan dan memiliki kunci Anda.
$ ssh-add -L
The agent has no identities.
gbr.2
Itu berarti Anda belum menambahkan kunci apa pun ke agen Anda. Perbaiki dengan:
ssh-add ~/.ssh/mykey.pem ~/.ssh/sharedkey.pem
gbr.3
Langkah 2
Pastikan agen jarak jauh Anda siap
SSH ke server yang benteng Anda dan ulangi cek dari gambar 1 & Gbr.2 . Namun, kesalahan yang lebih mungkin Anda dapatkan adalah ini:
$ ssh-add -L
Could not open a connection to your authentication agent.
gbr.4
Itu kemungkinan besar berarti bahwa klien SSH Anda tidak meneruskan koneksi agen otentikasi Anda.
Anda dapat memaksakan ini dengan -A
flag (selama sshd config di server mengizinkannya, yang merupakan default ).
$ ssh -A bastion.ec2
gbr.5
Langkah 3
Pastikan Anda menggunakan tombol yang tepat
Jika Anda telah menambahkan kunci ke agen Anda, agen Anda meneruskan, dan agen jarak jauh Anda mencantumkan kunci lokal Anda. Hanya ada dua kemungkinan alasan Anda tidak mendapatkan koneksi. Entah Anda tidak menggunakan kunci kanan atau Anda tidak menggunakan nama pengguna yang tepat.
Keluarkan mitra publik ke kunci pribadi Anda:
$ cd
$ cd .ssh
$ ssh-keygen -y -f mykey.pem
ssh-rsa ObahfCbvagGbLbhSbeHfvatEBG13
$ ssh-keygen -y -f sharedkey.pem
ssh-rsa LbhNerWhfgJnnlGbbPyrireEBG13
gbr.6
Ini harus sama dengan apa yang Anda lihat dari ssh-add -L
hingga ==
akhir.
Sekarang dengan satu atau lain cara Anda harus masuk ke kotak Anda gagal terhubung dan melihat isi $HOME/.ssh/authorized_keys
file untuk pengguna yang Anda coba sambungkan. Anda perlu memastikan kunci publik yang Anda hasilkan dengan perintah di atas ada di file itu pada sebuah baris dengan sendirinya. Anda tidak dapat mempercayai bahwa sharedkey.pub
Bro 2 kubus mengirimi Anda email benar. Memeriksa! Ini mungkin memerlukan orang lain yang bisa masuk SSH sebagai pengguna itu untuk mendapatkan Anda file otor_keys atau mendapatkan akses root. Jika Anda sudah sejauh ini dan masih tidak berhasil, Anda tidak perlu mengambil jalan pintas.
Langkah 4
Buat itu mudah
Semoga langkah-langkah di atas telah membuat Anda masuk. Sekarang mari kita buat sakit kepala ini pergi selama Anda menggunakan workstation ini.
Konfigurasikan ssh-client lokal Anda
Host *
# A lot of people put an IdentityFile line in this Host * section.
# Don't do that unless you will use only 1 key everywhere forever.
#IdentityFile id_rsa
Host bastion.ec2
# You want to make sure you always forward your agent to this host.
# But don't forward to untrusted hosts. So don't put it in Host *
ForwardAgent yes
# Go a head and put the IP here in case DNS ever fails you.
# Comment it out if you want. Having it recorded is a good backup.
HostName 172.31.0.1
# You don't want to create a proxy loop later, so be explicit here.
ProxyCommand none
# SSH should try using all keys in your .ssh folder, but if you
# know you want this key, being explicit speeds authentication.
IdentityFile ~/.ssh/mykey.pem
# Connect effortlessly by hostname or IP address
# This assumes that your internal DNS uses the fake TLD ec2
# This assumes that 172.31.0.0 is your C-Class subnet
Host *.ec2 172.31.*
# This command says proxy all ssh connections through bastion as if
# you had done an ssh -A
ProxyCommand ssh -W %h:%p bastion.ec2
ForwardAgent yes
# These next lines are documentation you leave as a love letter to
# your future self when all else fails or you have to help a
# coworker and decide to look at your own config.
# ssh-add ~/.ssh/*.pem
# ssh -At bastion.ecs ssh [email protected]
gbr.7
Jika Anda tidak mengambil hal lain dari gambar.7 itu harus menggunakan ProxyCommand
& ForwardAgent
.
Secara otomatis mengisi .bash_profile Anda
Anda tidak ingin harus melakukannya ssh-add
secara manual setiap kali Anda masuk ke mesin Anda. ~/.bash_profile
adalah skrip yang berjalan setiap kali Anda masuk **. Letakkan garis dari ara. 3 di sana dan Anda harus selalu menyiapkan agen Anda.
** Jangan bingung dengan ini .bashrc
yang berjalan untuk setiap terminal [interaktif] baru. Agen Anda terus berjalan bahkan jika Anda menutup semua sesi terminal Anda. Tidak Perlu memuat ulang kunci Anda
Alternatif menggunakan .bash_profile
Saya juga telah membuat intisari yang menambahkan Agen Peluncuran OSX / macOS . Anda dapat menggunakan metode itu untuk memulai ssh-agent
boot Anda. Sangat mudah untuk menginstal:
curl -sSL https://gist.github.com/RichardBronosky/429a8fff2687a16959294bcee336dd2a/raw/install.sh | bash
ForwardAgent yes
dengan-A
jika tuan rumah tidak mengizinkan itu.Anda tidak meneruskan kunci. Anda meneruskan agen dan dapat memiliki kunci yang sepenuhnya independen daripada yang Anda gunakan untuk otentikasi di lompatan pertama. Periksa kunci di agen Anda menggunakan
ssh-add -L
.Tetapi yang lebih baik lagi, jalankan koneksi
ProxyCommand ssh -W %h:%p [email protected]
, yang akan menghindari kebutuhan untuk meneruskan agen, opsi heap atau baris perintah dan kebutuhan untuk mengotentikasi dari host langsung.Anda bisa memasukkannya ke dalam konfigurasi Anda (lihat
man ssh_config
).sumber
ssh-add mykey.pem sharedkey.pem
lalu konfirmasikan denganssh-add -L
itussh -At [email protected] ssh [email protected]