SSH: Bagaimana cara kembali ke otentikasi kata sandi setelah satu upaya gagal?

1

Saya memiliki SSH yang diatur dengan pasangan kunci publik / pribadi yang terpisah untuk setiap server yang saya akses secara berkala, dan saya mengkonfigurasi identitas ini dalam konfigurasi SSH.

Namun, pertama kali saya terhubung ke server pribadi yang baru, saya harus menggunakan kata sandi untuk menyalin kunci publik saya ke dalam file Authorized_keys.

Saat ini jika PubkeyAuthentication diaktifkan, ketika saya menjalankan ssh -v <new-server> Saya melihatnya mencoba menggunakan kunci pribadi default saya tiga kali sebelum gagal dengan kesalahan "terlalu banyak upaya gagal". Mengapa ia mencoba kunci SSH untuk kedua atau ketiga kalinya setelah gagal sekali adalah di luar jangkauan saya - tidak seperti mengetik kata sandi.

Bagaimana saya bisa mengkonfigurasinya sehingga hanya akan mencoba menggunakan file identitas sekali, lalu kembali ke otentikasi kata sandi?

Solusi saya (bukan manual) saat ini adalah:

  1. Tambahkan server ke file konfigurasi dengan PubkeyAuthentication no
  2. Salin kunci publik
  3. Edit file konfigurasi dan atur PubkeyAuthentication untuk yes

Log

Per beberapa komentar, ini adalah log ketika saya mencoba untuk terhubung ke server baru (saya menghapus file Authorized_key dari server ini sebelum melakukan ini untuk memaksa kesalahan)

{11:48}|~/s/qos >ssh -v sbarnett.vm
OpenSSH_7.2p2 Ubuntu-4ubuntu2.2, OpenSSL 1.0.2g  1 Mar 2016
debug1: Reading configuration data /home/sbarnett/.ssh/config
debug1: /home/sbarnett/.ssh/config line 30: Applying options for sbarnett.vm
debug1: /home/sbarnett/.ssh/config line 62: Applying options for *
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug1: Executing proxy command: exec ssh -q -W sbarnett.vm.domain.com:22 jumphost
debug1: key_load_public: No such file or directory
debug1: permanently_drop_suid: 1000
debug1: identity file /home/sbarnett/.ssh/id_rsa type -1
debug1: key_load_public: No such file or directory
debug1: identity file /home/sbarnett/.ssh/id_rsa-cert type -1
debug1: key_load_public: No such file or directory
debug1: identity file /home/sbarnett/.ssh/id_dsa type -1
debug1: key_load_public: No such file or directory
debug1: identity file /home/sbarnett/.ssh/id_dsa-cert type -1
debug1: key_load_public: No such file or directory
debug1: identity file /home/sbarnett/.ssh/id_ecdsa type -1
debug1: key_load_public: No such file or directory
debug1: identity file /home/sbarnett/.ssh/id_ecdsa-cert type -1
debug1: key_load_public: No such file or directory
debug1: identity file /home/sbarnett/.ssh/id_ed25519 type -1
debug1: key_load_public: No such file or directory
debug1: identity file /home/sbarnett/.ssh/id_ed25519-cert type -1
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_7.2p2 Ubuntu-4ubuntu2.2
debug1: Remote protocol version 2.0, remote software version OpenSSH_7.2p2 Ubuntu-4ubuntu2.1
debug1: match: OpenSSH_7.2p2 Ubuntu-4ubuntu2.1 pat OpenSSH* compat 0x04000000
debug1: Authenticating to sbarnett.vm.domain.com:22 as 'sbarnett'
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: algorithm: [email protected]
debug1: kex: host key algorithm: ecdsa-sha2-nistp256
debug1: kex: server->client cipher: [email protected] MAC: <implicit> compression: none
debug1: kex: client->server cipher: [email protected] MAC: <implicit> compression: none
debug1: expecting SSH2_MSG_KEX_ECDH_REPLY
debug1: Server host key: ecdsa-sha2-nistp256 SHA256:m9EW13TUteWcf/0vkNdFRFjwRhoe28neqN77B71DX8M
debug1: Host 'sbarnett.vm.domain.com' is known and matches the ECDSA host key.
debug1: Found key in /home/sbarnett/.ssh/known_hosts:16
debug1: rekey after 134217728 blocks
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: rekey after 134217728 blocks
debug1: SSH2_MSG_NEWKEYS received
debug1: SSH2_MSG_EXT_INFO received
debug1: kex_input_ext_info: server-sig-algs=<rsa-sha2-256,rsa-sha2-512>
debug1: SSH2_MSG_SERVICE_ACCEPT received
WARNING. You have accessed a private computer system. Unauthorized access,
use, connection, or entry is not permitted and constitutes a crime
punishable by law. We reserve the right to fully pursue criminal and civil
legal penalties. All individuals using this computer system with or without
proper authority are subject to having all their activities monitored and
recorded. Anyone using this system implicitly consents to this monitoring.
Any evidence of suspected criminal activity revealed by such monitoring may
be provided to law enforcement officials
debug1: Authentications that can continue: publickey,password
debug1: Next authentication method: publickey
debug1: Offering RSA public key: sbarnett@Gimli
debug1: Authentications that can continue: publickey,password
debug1: Offering RSA public key: sbarnett@Gimli
debug1: Authentications that can continue: publickey,password
debug1: Offering RSA public key: sbarnett@Gimli
debug1: Authentications that can continue: publickey,password
debug1: Offering RSA public key: sbarnett@Gimli
debug1: Authentications that can continue: publickey,password
debug1: Offering RSA public key: sbarnett@Gimli
debug1: Authentications that can continue: publickey,password
debug1: Offering RSA public key: sbarnett@Gimli
Received disconnect from UNKNOWN port 0:2: Too many authentication failures
debug1: Authentication succeeded (publickey).
Authenticated to sbarnett.vm.domain.com (via proxy).
debug1: channel 0: new [client-session]
debug1: Requesting [email protected]
debug1: Entering interactive session.
debug1: pledge: proc
packet_write_wait: Connection to UNKNOWN port 0: Broken pipe
stevendesu
sumber
1
Saya belum melihat perilaku ini. Saya biasanya melihat kesalahan bahwa gagal login kunci saya. Apakah Anda memiliki entri log untuk menunjukkan apa yang terjadi?
uSlackr
Apakah masalah yang Anda tidak dapat ssh ke server sama sekali tanpa kunci publik? Jika demikian, Anda dapat mengubah PasswordAuthentication ke yes di httpd.conf. Masalahnya mungkin juga karena distro Anda mengizinkan otentikasi kata sandi, tetapi tidak untuk root [dan Anda mencoba masuk sebagai root] - dalam hal ini ubah skrip Anda untuk login sebagai pengguna lain dan su root, atau ubah PermitRootLogin. Masalah yang mungkin Anda alami dengan kunci publik Anda adalah bahwa kunci tersebut dapat dilindungi kata sandi, dan SSH memberi Anda beberapa kali percobaan untuk memasukkan frasa sandi?
davidgo
Saya telah memperbarui pertanyaan dengan log dari SSH. Perhatikan ulang Offering RSA public key: sbarnett@Gimli meskipun mengalami kegagalan
stevendesu

Jawaban:

0

lihat itu mencoba menggunakan kunci pribadi default saya tiga kali sebelum gagal dengan kesalahan "terlalu banyak upaya yang gagal".

Itu tidak mungkin. Ini tidak akan menggunakan kunci yang sama lebih banyak jika ditolak. Mungkin menggunakan tombol default lain ...

Bagaimana saya bisa mengkonfigurasinya sehingga hanya akan mencoba menggunakan file identitas sekali, lalu kembali ke otentikasi kata sandi?

Anda dapat mengonfigurasi klien untuk mengabaikan kunci publik

ssh -oPubkeyAuthentication=no <new-server>
Jakuje
sumber
Solusi ini memberitahukannya untuk mengabaikan kunci publik sepenuhnya. Saya ingin (jika mungkin) opsi untuk mencoba kunci publik satu kali, lalu kembali ke otentikasi kata sandi. Atau, Anda menyebutkan bahwa ia mencoba beberapa kunci default yang berbeda. Bagaimana cara menetapkan satu kunci standar dan menandai semua kunci saya yang lain sebagai non-standar sehingga tidak akan mencobanya?
stevendesu
Sayangnya itu tidak mungkin .. Atau hanya memindahkan kunci default dari lokasi default dan arahkan klien ke sana hanya jika sudah diketahui.
Jakuje
Untuk saat ini, karena sepertinya tidak ada solusi dan Anda satu-satunya jawaban, saya menerima jawaban ini. Meskipun saya memperbarui pertanyaan saya dengan log debug jika Anda ingin melihat dan memverifikasi seperti apa bagi saya: bahwa itu mencoba ulang kunci SSH saya setelah gagal
stevendesu