Cara menonaktifkan coba lagi kata sandi di perintah ssh


11

Saya ingin perintah ssh hanya mengizinkan satu kesempatan dalam mengetik kata sandi, jika kata sandi salah pada saat pertama kali ssh akan kembali

Permission denied (publickey......).

Apakah ada bendera yang memberi tahu ssh untuk meminta hanya satu kali kata sandi?

Dari pada:

[nir@dhcppc4 ~]$ ssh pokemon@192.168.1.103
pokemon@192.168.1.103's password: 
Permission denied, please try again.
pokemon@192.168.1.103's password: 
Permission denied, please try again.
pokemon@192.168.1.103's password: 
Permission denied (publickey.....).

Saya ingin:

[nir@dhcppc4 ~]$ ssh pokemon@192.168.1.103
pokemon@192.168.1.103's password: 
Permission denied (publickey.....).

Solusinya harus di sisi klien (misalnya beberapa bendera ke perintah ssh atau menggunakan pipa), saya tidak bisa menyentuh sshd_config, atau file konfigurasi sistem lainnya. Karena-secara umum- saya membuat perangkat lunak pihak ke-3 (jadi saya tidak dapat membuat kunci atau mengkonfigurasi file sistem) yang mengakses server di LAN, kata sandi disimpan dalam DB (oleh karena itu tidak perlu upaya kedua). Dan dalam kode saya jika saya dapat berasumsi bahwa saya hanya memiliki satu upaya untuk ssh/ scpitu akan menyederhanakan kode yang relevan.


1
Seperti yang ditunjukkan oleh jawaban, Anda dapat memodifikasi ini, tetapi mengapa Anda mau? Orang sering melakukan kesalahan pengetikan, dan pengaturan default diatur untuk memungkinkan kelemahan semacam itu. Pertanyaan yang lebih baik mungkin "bagaimana cara mengunci pengguna yang gagal dan upaya masuk?" terutama jika Anda ingin melindungi dari login jahat.
msw

Alasan saya rumit dan panjang. Apa yang dapat saya katakan adalah bahwa jika kata sandi itu salah pada saat pertama - itu akan terus salah kali berikutnya.
Nir

2
Anda ingin melakukan fungsi administrasi sistem yang paling mendasar (otentikasi) tetapi tidak dapat menyentuh file konfigurasi sistem? Anda kurang beruntung. Jika Anda ingin menjelaskan alasan Anda yang panjang dan kompleks, mungkin kami mungkin dapat melihat X alih-alih Y yang telah Anda sajikan dalam Masalah XY
msw

1
Satu-satunya cara saya dapat melihat ini bahkan menjadi masalah adalah jika Anda melakukan kata sandi auth non-interaktif, dalam hal apa pun utilitas yang Anda gunakan untuk melakukan itu harus memiliki fasilitas untuk dibatalkan setelah salah satu kata sandi gagal atau, jika tidak , maka utilitas itu harus menjadi subjek pertanyaan ini.
Sammitch

1
Saya juga memperhatikan bahwa ssh mencatat upaya yang gagal pada kunci publik auth, apakah Anda mempertimbangkan untuk menyalin kunci publik Anda dan menghindari ini sepenuhnya?
Sammitch

Jawaban:


14

Di halaman manual sshd config man 5 sshd_config:

 MaxAuthTries
     Specifies the maximum number of authentication attempts permitted
     per connection.  Once the number of failures reaches half this
     value, additional failures are logged.  The default is 6.

Jadi pengaturan MaxAuthTries 2akan menjadi pengaturan yang Anda butuhkan. sshdperlu dimulai ulang setelah itu (harus dijalankan sebagai root):

/etc/init.d/ssh restart 

atau

service ssh restart

Di sisi klien ini dapat diatur dengan pengaturan ssh (lihat man 5 ssh_configuntuk pengaturan yang dapat Anda terapkan):

 NumberOfPasswordPrompts
         Specifies the number of password prompts before giving up.  The
         argument to this keyword must be an integer.  The default is 3.

Jadi edit ~/.ssh/configfile Anda dan tambahkan:

 Host <name_or_ip_of_host|*>
     NumberOfPasswordPrompts 1

Di mana <name_or_ip_of_host|*>IP kanonik atau nama host yang Anda gunakan pada baris perintah, atau *untuk semua upaya koneksi host. Anda juga dapat menentukan ini pada baris perintah tanpa harus mengedit /.ssh/configfile Anda :

  ssh -o NumberOfPasswordPrompts=1 user@hostname 

Silakan lihat edit pertanyaan. Saya ingin menggunakan flag / pipeline dan tidak mengubahsshd_config
Nir

Saya sudah mengedit jawaban saya memberikan opsi sisi klien.
Drav Sloan

0

Lihatlah MaxAuthTries di sshd_config. Standarnya adalah 6, jadi ingatlah bahwa Anda mungkin mencoba pubkey auth sebelum Anda mencoba kata sandi auth saat memilih nilai Anda.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.