Menekan spanduk ssh dari klien OpenSSH

34

Saya masuk ke server yang memiliki spanduk ssh. Saya ingin menekannya (terutama untuk penggunaan non-interaktif). Saya tidak memiliki akses ke server sshd_config.

Solusi terbaik yang saya temukan sejauh ini adalah mengatur LogLevel ERRORopsi pada klien. Masalahnya adalah ini akan menekan INFOpesan level lainnya , yang saya tidak ingin sembunyikan (cari sumber OpenSSH logituntuk contoh). Saya juga bisa menggunakan ssh -qtetapi itu akan menekan lebih banyak lagi.

Apakah ada solusi lain yang lebih spesifik?

Michael Hoffman
sumber

Jawaban:

43

AFAIK, " ssh -q" atau " LogLevel QUIET" in ~/.ssh/configadalah cara "tradisional" untuk membungkam spanduk. Jadi, Anda sudah memiliki "kompromi" yang lebih baik dengan " LogLevel ERROR".

Solusi yang lebih spesifik adalah dengan menggunakan versi ssh klien yang ditambal khusus, jika ini merupakan opsi.

Thivent Pascal
sumber
2
Saya pikir itu LogLevel ERRORhanya menekan spanduk dalam versi OpenSSH yang lebih baru. Dalam versi yang lebih lama, LogLevel QUIETatau ssh -qdiperlukan.
Michael Hoffman
3
Jika -qtidak berfungsi (itu tidak cocok untuk saya di Debian 7) maka Anda dapat menggunakan solusi dari pertanyaan lain: serverfault.com/a/764403/62024
Nux
1

Anda juga bisa menggunakan:

Banner none

di

/etc/ssh/sshd_config
Pedro Lobito
sumber
1
OP menentukan "Saya tidak memiliki akses ke server sshd_config", jadi sayangnya ini tidak menjawab pertanyaan.
Tuan Shunz
@ MrShunz Anda benar, tetapi saya tiba di halaman ini untuk mencari Suppressing ssh banner from OpenSSH clientdan jawaban ini, sementara itu tidak sepenuhnya menjawab pertanyaan OP, itu mungkin membantu pengguna di masa depan.
Pedro Lobito
0

Instal hexedit:

apt-get update && apt-get install hexedit

Cadangkan binary sshd Anda dan buat copy pekerjaan yang dapat diedit (sebagai root):

  cp -p /usr/sbin/sshd /tmp/sshd.backup
  cp -p /tmp/sshd.backup /tmp/sshd.new

Perbarui biner dengan hexedit:

hexedit /tmp/sshd.new

Tekan TAB untuk beralih dari HEX ke area ASCII.

Gunakan CTRL + S untuk memunculkan prompt pencarian dan mencari teks di banner Anda daripada yang ingin Anda sembunyikan misalnya 'OpenSSH_7.4'.

Anda harus melihat sesuatu seperti:

0007DA54   61 67 65 6E  74 00 00 00  4F 70 65 6E  agent...Open
0007DA60   53 53 48 5F  37 2E 34 70  31 20 52 61  SSH_7.4p1 Ra
0007DA6C   73 70 62 69  61 6E 2D 31  30 2B 64 65  spbian-10+de
0007DA78   62 39 75 32  00 00 00 00  4F 70 65 6E  b9u2....Open

Gunakan tombol panah untuk menyorot awal string yang ingin Anda perbarui dan ketik pengganti Anda.

Berhati-hatilah untuk tetap berada dalam batas panjang spanduk asli. Anda juga dapat menekan TAB untuk beralih kembali ke area HEX jika Anda ingin membatalkan string yang mengatur setiap kata menjadi '00'.

Perubahan Anda akan terlihat seperti:

0007DA54   61 67 65 6E  74 00 00 00  48 65 72 65  agent...Here
0007DA60   20 62 65 20  64 72 61 67  6F 6E 73 2E   be dragons.
0007DA6C   20 54 75 72  6E 20 42 61  63 6B 00 00   Turn Back..
0007DA78   00 00 00 00  00 00 00 00  4F 70 65 6E  ........Open

Simpan perubahan Anda dengan CTRL + x dan Y.

Periksa apakah ada contoh yang kami lewatkan (kami harapkan tidak ada keluaran sekarang):

strings /tmp/sshd.new | grep Rasp

Perbarui sshd dan mulai ulang layanan untuk ukuran yang baik:

rm /usr/sbin/sshd
cp -p /tmp/sshd.new /usr/sbin/sshd
systemctl restart ssh.service

Periksa apakah Anda masih dapat SSH (jika tidak, pulihkan cadangan atau instal ulang OpenSSH dari manajer paket Anda!):

ssh -vv user@ip

CATATAN!!

Perubahan ini hanya bersifat sementara karena setiap kali Anda memperbarui OpenSSH, biner akan diganti.

kokane
sumber
2
Meskipun benar bahwa pertanyaannya tidak secara spesifik menentukan bahwa mereka tidak memiliki akses tulis sshd, sepertinya sangat mungkin karena tidak menentukan sshd_configakses. Mereka mencari solusi berbasis klien.
Mike Scott