Loại bỏ biểu ngữ ssh từ ứng dụng khách OpenSSH


34

Tôi đang đăng nhập vào một máy chủ có bộ banner ssh. Tôi muốn loại bỏ nó (đặc biệt là cho sử dụng không tương tác). Tôi không có quyền truy cập vào máy chủ sshd_config.

Giải pháp tốt nhất tôi tìm thấy cho đến nay là đặt LogLevel ERRORtùy chọn trên máy khách. Vấn đề là điều này sẽ ngăn chặn bất kỳ INFOthông báo cấp độ nào khác mà tôi không nhất thiết muốn ẩn (tìm kiếm nguồn OpenSSH để logitbiết ví dụ). Tôi cũng có thể sử dụng ssh -qnhưng điều đó sẽ triệt tiêu hơn nữa.

Có giải pháp cụ thể nào khác không?

Câu trả lời:


43

AFAIK, " ssh -q" hoặc " LogLevel QUIET" ~/.ssh/configlà những cách "truyền thống" để tắt biểu ngữ. Vì vậy, bạn đã có một thỏa hiệp "tốt hơn" với " LogLevel ERROR".

Một giải pháp cụ thể hơn sẽ là sử dụng phiên bản vá tùy chỉnh của máy khách ssh, nếu đây là một tùy chọn.


2
Tôi nghĩ rằng LogLevel ERRORchỉ loại bỏ biểu ngữ trong các phiên bản mới hơn của OpenSSH. Trong các phiên bản cũ hơn, LogLevel QUIEThoặc ssh -qđược yêu cầu.
Michael Hoffman

3
Nếu -qkhông hoạt động (nó không phù hợp với tôi trên Debian 7) thì bạn có thể sử dụng giải pháp từ một câu hỏi khác: serverfault.com/a/764403/62024
Nux

1

Bạn cũng có thể dùng:

Banner none

trên

/etc/ssh/sshd_config

1
OP chỉ định "Tôi không có quyền truy cập vào máy chủ sshd_config", vì vậy thật không may, điều này không trả lời câu hỏi.
Ông Shunz

@MrShunz Bạn nói đúng, nhưng tôi đã đến trang này để tìm kiếm Suppressing ssh banner from OpenSSH clientvà câu trả lời này, trong khi nó không trả lời đầy đủ câu hỏi của OP, nó có thể giúp người dùng trong tương lai.
Pedro lobito

0

Cài đặt hexedit:

apt-get update && apt-get install hexedit

Sao lưu nhị phân sshd của bạn và tạo một bản sao làm việc có thể chỉnh sửa (với quyền root):

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

Cập nhật nhị phân với hexedit:

hexedit /tmp/sshd.new

Nhấn TAB để chuyển từ HEX sang khu vực ASCII.

Sử dụng CTRL + S để hiển thị lời nhắc tìm kiếm và tìm kiếm văn bản trong biểu ngữ của bạn hơn là bạn muốn ẩn, ví dụ: 'OpenSSH_7.4'.

Bạn sẽ thấy một cái gì đó như:

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

Sử dụng các phím mũi tên để tô sáng phần bắt đầu của chuỗi mà bạn muốn cập nhật và nhập thay thế.

Hãy cẩn thận để ở trong giới hạn về độ dài của biểu ngữ gốc. Bạn cũng có thể nhấn TAB để chuyển về khu vực HEX nếu bạn muốn loại bỏ chuỗi cài đặt từng từ thành '00'.

Thay đổi của bạn sẽ trông giống như:

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

Lưu các thay đổi của bạn với CTRL + x và Y.

Kiểm tra nếu có bất kỳ trường hợp nào mà chúng tôi bỏ lỡ (chúng tôi dự kiến ​​không có đầu ra ngay bây giờ):

strings /tmp/sshd.new | grep Rasp

Cập nhật sshd và khởi động lại dịch vụ để có biện pháp tốt:

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

Kiểm tra xem bạn vẫn có thể SSH vào (nếu không khôi phục bản sao lưu hoặc cài đặt lại OpenSSH từ trình quản lý gói của bạn!):

ssh -vv user@ip

CHÚ THÍCH!!

Thay đổi này sẽ chỉ là tạm thời vì bất cứ khi nào bạn cập nhật OpenSSH, tệp nhị phân sẽ được thay thế.


2
Mặc dù đúng là câu hỏi không thực sự xác định rằng họ không có quyền truy cập bằng văn bản sshd, nhưng có vẻ như rất có thể vì nó đã chỉ định không có sshd_configquyền truy cập. Họ đang tìm kiếm một giải pháp dựa trên khách hàng.
Mike Scott
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.