Opsi klien SSH untuk menekan spanduk server?

14

Saya sudah membaca Stop ssh login from printing motd from the client? , namun situasiku sedikit berbeda:

  • Saya ingin menyimpan Banner / path / ke / sometxt serveride
  • Saya ingin memberikan opsi dalam kondisi tertentu sehingga Banner tidak dicetak (mis ssh -o "PrintBanner=No" someserver.).

Ada ide?

Komunitas
sumber

Jawaban:

-1

Kamu tidak bisa (Setidaknya tidak dengan stok OpenSSH)

Spanduk server dikirim oleh server sebelum otentikasi terjadi. Intinya biasanya berisi sanggahan hukum atau sejenisnya "Jika Anda tidak berwenang putuskan sambungan SEKARANG", atau hal-hal penting lainnya yang tidak ingin pengguna jarak jauh dapat menekan / abaikan.

Jika Anda benar-benar ingin menyingkirkan ini, Anda perlu meretas dan mengkompilasi versi klien SSH Anda yang telah disesuaikan.

voretaq7
sumber
15
Ini adalah informasi lama dan tidak lagi berlaku pada distribusi umum. Jawaban di bawah ini untuk menggunakan salah satu -qatau -o LogLevel=errorbekerja dengan baik sekarang :-)
Dogsbody
28

Ada LogLevelopsi:

Ini membungkam spanduk tetapi Anda masih dapat menerima kesalahan:

$ ssh -o LogLevel=error localhost 
Permission denied (publickey).
pengguna3640161
sumber
Tidak bekerja dengan klien OpenSSH 6.9 - mungkin informasi versi akan berguna?
Zayne S Halsall
Bekerja dengan OpenSSH_6.6.1p1 Ubuntu-2ubuntu2.3, OpenSSL 1.0.1f 6 Jan 2014
Kulbir Saini
6

Saya sudah mengujinya, saya pikir Anda dapat menggunakan -qperintah ssh. Parameter -q berarti mode Diam . Ini menyebabkan sebagian besar pesan peringatan dan diagnostik ditekan, misalnya

ssh -t '$node2' 'sudo cat xxx' |grep xxxxx" 2>/dev/null >/root/node2

atau

ssh -t -q '$node2' 'sudo cat xxxx' |grep xxx" >/root/node2

Semoga ini bisa membantu orang lain

gray13
sumber
-q tidak bekerja dari klien Fedora 22 hingga Centos 6 dan Suse 2.6 (klien adalah OpenSSH 6.9. Mungkin jawaban ini akan terangkat jika merujuk versi ssh tertentu?
Zayne S Halsall
5

Perbarui ~ / .ssh / config dengan mengikuti untuk menekan banner

Host *
    LogLevel error
Sashi Kant
sumber
Saya percaya baris "Host *" adalah redundan atau salah. Bagaimanapun, saya mendapatkan efek yang diinginkan tanpa itu. Juga harus dicatat bahwa OP ingin mendapatkan efek di bawah kondisi terprogram tertentu, dalam hal ini opsi baris perintah yang tercantum di atas adalah solusi yang lebih baik.
UncaAlby
4

Anda harus dapat mengatur yang berbeda Banner(tidak ada) di dalam Matchblok.

Contohnya:

Match Address 192.0.2.0/24
        Banner none

Tetapi ini harus dilakukan di sisi server , berdasarkan kondisi tertentu. Anda tidak dapat melakukannya dari sisi klien .

Michael Hampton
sumber
4

Sepertinya Anda sedang mencari -q :

Mode diam. Menyebabkan sebagian besar pesan peringatan dan diagnostik ditekan.

ssh user@host
*------------------------------------------------------------------------------*
| banner: blah                                                                 |
*------------------------------------------------------------------------------*
Last login: Mon Oct  2 16:40:01 2017 from ipAddress
$

Dengan -q

ssh -q user@host
Last login: Mon Oct  2 16:40:30 2017 from ipAddress
$

Bagus dan tenang. Spanduk masih dikonfigurasikan tetapi Anda tidak terganggu karenanya.

Pada catatan lain: jangan gunakan spanduk. Yang terbaik adalah tidak mengkonfirmasi atau menyangkal apa pun. Itu tidak akan membantu Anda dengan orang-orang yang tidak Anda khawatirkan dan orang-orang yang Anda khawatirkan akan tertawa ketika mereka melewatinya;-)

todd_dsm
sumber
0

Bagi saya, -o LogLevel=erroritu lebih baik daripada -q, karena yang terakhir menekan informasi kesalahan penting (yang kemudian dapat Anda peroleh hanya melalui kode keluar).

Bandingkan ini (tanpa opsi): [root@myserver804 myuser1]# ssh targetserver1; echo "exit code=$?" @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY! Someone could be eavesdropping on you right now (man-in-the-middle attack)! It is also possible that a host key has just been changed. The fingerprint for the RSA key sent by the remote host is SHA256:hvtR8Dl09aUeCeG2cT5EA8b+nbCOoV6h1DUON2vE63w. Please contact your system administrator. Add correct host key in /root/.ssh/known_hosts to get rid of this message. Offending RSA key in /root/.ssh/known_hosts:1735 RSA host key for targetserver1 has changed and you have requested strict checking. Host key verification failed. exit code=255

dengan ini (tenang) [root@myserver804 myuser1]# ssh -q targetserver1; echo "exit code=$?" exit code=255

dengan ini (hanya kesalahan log) [root@myserver804 myuser1]# ssh -o LogLevel=error targetserver1; echo "exit code=$?" @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY! Someone could be eavesdropping on you right now (man-in-the-middle attack)! It is also possible that a host key has just been changed. The fingerprint for the RSA key sent by the remote host is SHA256:hvtR8Dl09aUeCeG2cT5EA8b+nbCOoV6h1DUON2vE63w. Please contact your system administrator. Add correct host key in /root/.ssh/known_hosts to get rid of this message. Offending RSA key in /root/.ssh/known_hosts:1735 RSA host key for targetserver1 has changed and you have requested strict checking. Host key verification failed. exit code=255

Jadi kesimpulannya adalah - jika Anda masih tertarik pada kesalahan yang relevan, gunakan -o LogLevel=error

Pik Master
sumber
0

Baik itu -qatau -oLogLevel=errorbekerja.

Apa yang berhasil adalah menekan STDERR

ssh hostname command 2>/dev/null

Namun kerugiannya adalah bahwa penindasan STDERR diterapkan pada seluruh perintah dan bukan hanya program SSH.

Aethalides
sumber
-2

Panggil saja shell, yang seharusnya menekan banner.

ssh [email protected] /bin/bash

Perhatikan, setidaknya untuk saya, $ PS1 saya tidak siap, jadi sepertinya menggantung. Saya harus mengetik beberapa perintah untuk memverifikasi bahwa itu berfungsi.

chrskly
sumber
1
Ini tidak akan menekan spanduk yang ditampilkan oleh Banneropsi di /etc/sshd_config(setidaknya tidak pada FreeBSD / OpenSSH_5.8p2)
voretaq7
Ah, saya melihat motd dalam pertanyaan itu. Itu akan mempelajari saya untuk membaca deskripsi dengan benar;)
chrskly
-2

Bagi saya -q melakukan trik dan saya masih bisa bekerja dengan output yang disimpan ke file.

ssh -q root @ server28 "ls -alF / dr_mksysb | egrep -v \" total | hilang + ditemukan | ./ | ../ \ "| awk '{print \ $ NF}' | sed 's /.\$ // g '"> $ {basedir} /28.list

Zatarra
sumber
Hebat itu bekerja untuk Anda. Namun demikian ini tidak menjawab pertanyaan dan harus menjadi komentar paling banyak.
Gerald Schneider
Itulah masalahnya, itu menjawab pertanyaan, saya menyingkirkan motd (spanduk) Saya punya masalah yang sama persis seperti yang dinyatakan dalam pertanyaan
Zatarra
Satu-satunya bagian dari jawaban Anda yang terkait dengan pertanyaan adalah -qparameter. Sisanya sama sekali tidak berhubungan dan hanya membantu Anda. Parameter telah diberikan sebagai jawaban, jadi jangan ragu untuk meningkatkannya jika itu membantu Anda, tetapi "jawaban" ini hanya akan menerima downvotes
Gerald Schneider