Bagaimana cara menentukan urutan klien SSH OpenSSH (OpenSSH_7.5p1, OpenSSL 1.0.2k 26 Jan 2017; Git untuk Windows v2.11.1) menawarkan pasangan kunci publik/pribadi ke daemon yang sesuai dengan SSH seperti Apache Mina SSHD (Gerrit Layanan Peninjauan Kode). Tujuan saya adalah mencoba mengautentikasi dengan pasangan kunci publik/pribadi Ed25519 sebelum kembali ke RSA.
Diberikan pasangan kunci publik/pribadi Ed25519 dan RSA standar berikut di bawah direktori home pengguna:
~/.ssh/id_ed25519{,.pub}
~/.ssh/id_rsa{,.pub}
dan bagian Host berikut di file konfigurasi SSH pengguna (~/.ssh/config):
Host foobar foobar.example.com
Hostname foobar.example.com
IdentityFile ~/.ssh/id_ed25519
Host *
IdentityFile ~/.ssh/id_ed25519
IdentityFile ~/.ssh/id_rsa
saat menguji koneksi SSH dalam mode debug:
$ ssh -Tv [email protected]
debug1: Reading configuration data ~/.ssh/config
debug1: ~/.ssh/config line 49: Applying options for foobar
debug1: ~/.ssh/config line 63: Applying options for *
debug1: Authentications that can continue: publickey
debug1: Next authentication method: publickey
debug1: Offering RSA public key: ~/.ssh/id_rsa
debug1: Authentications that can continue: publickey
debug1: Offering ED25519 public key: ~/.ssh/id_ed25519
debug1: Server accepts key: pkalg ssh-ed25519 blen 51
debug1: Authentication succeeded (publickey).
Saya dapat melihat bahwa klien SSH OpenSSH menawarkan pasangan kunci publik/pribadi RSA terlebih dahulu. Tapi kenapa tidak Ed25519 dulu?
Jawaban yang Diterima:
Tambahkan IdentitiesOnly
pilihan. Tanpa opsi ini SSH mencoba kunci ssh default pertama yang tersedia:id_rsa
, id_dsa
, id_ecdsa
. Untuk mengubah perilaku ini, ganti konfigurasi Anda dengan yang ini:
Host foobar foobar.example.com
Hostname foobar.example.com
IdentityFile ~/.ssh/id_ed25519
IdentitiesOnly yes
Host *
IdentityFile ~/.ssh/id_ed25519
IdentityFile ~/.ssh/id_rsa
IdentitiesOnly yes