Tin tưởng máy chủ SSH dựa trên khóa thay vì nếu khóa + IP khớp


8

Có thể làm cho máy khách ssh không quan tâm IP nào là máy chủ ssh đứng sau (và nếu một máy chủ khác đứng sau IP đó trước đó) mà thay vào đó tin tưởng các khóa máy chủ cụ thể? (Và có thể đặt biệt danh cho các khóa đó?) Tôi sử dụng DNS động và tôi đã bật tiện ích mở rộng quyền riêng tư IPv6 trên một số máy tính và luôn được hỏi liệu có an toàn khi kết nối không. Một khả năng khác là các địa chỉ được chỉ định bởi DHCP sẽ được gán cho các máy chủ ssh khác nhau và gây ra tất cả các loại 'khóa không khớp với IP'.


Có lẽ tôi cũng nên đề cập rằng tôi có một danh sách các khóa công khai cho mỗi máy chủ ssh của mình trên một trang web được phục vụ qua SSL, vì vậy tôi có một cách dễ dàng để kiểm tra xem tôi có thực sự tin tưởng vào một bộ khóa máy chủ cụ thể không.
Azendale

Câu trả lời:


7

Thêm một biệt danh cho máy chủ của bạn ~/.ssh/configvà tắt CheckHostIPcho máy chủ này.

Host nickname
HostName example.dyndns.org
CheckHostIP no

Trước khi bạn kết nối với máy chủ lần đầu tiên, bạn có thể sao chép khóa ngoài công khai: lấy /etc/ssh/ssh_host_rsa_key.pubtừ máy chủ, xóa root@hostnamephần ở cuối dòng, thêm example.dyndns.orgvào đầu và nối thêm dòng vào ~/.ssh/known_hosts. Tùy chọn chạy ssh-keygen -Hđể băm tên máy chủ (điều này chỉ hữu ích nếu bạn lo ngại về quyền riêng tư của mục đó nếu ai đó đánh cắp đĩa cứng hoặc bản sao lưu của bạn, điều này đối với 99,99% mọi người là vô ích vì thông tin có ở một số khác gần đó vị trí nào).


Với Host nickname, điều đó có nghĩa là tôi có thể làm ssh nicknamenhư vậy để có được nó? Nếu vậy, đó là khá gọn gàng.
Azendale

@Azendale: Chính xác, đó là một tính năng chung để đặt biệt hiệu cho tên máy chủ và một tập hợp các tùy chọn (tên người dùng, tùy chọn boolean, đường hầm, giật).
Gilles 'SO- đừng trở nên xấu xa'

2

Trong /etc/ssh/ssh_configthêm dòng

CheckHostIP no

Tuy nhiên, điều này sẽ lấy đi một chút Bảo mật trong SSH, bởi vì bất kỳ máy nào cũng có thể ẩn đằng sau tên IP hoặc DynDNS mà bạn kết nối.


1
Điều này không lấy đi bất kỳ bảo mật nào cả. Toàn bộ điểm lưu trữ khóa máy chủ là xác định máy tính khác. Tên và địa chỉ IP không liên quan để bảo mật khi bạn có khóa máy chủ. Loại bỏ các tin nhắn giả trên thực tế là một lợi ích cho bảo mật (tin nhắn giả mạo tiêu tốn sự chú ý của bạn, đây là một nguồn tài nguyên khan hiếm).
Gilles 'SO- đừng trở nên xấu xa'

1
@Gilles: Các manpage không đồng ý. Có, bạn không mất bất kỳ bảo mật nào cho các kết nối khi không có mối quan hệ IP-to-host nổi tiếng, trong các trường hợp khác, bạn từ bỏ bảo vệ chống lại các cuộc tấn công giả mạo DNS (như đã nêu trong trang chủ).
htorque

Tôi không biết đoạn văn nào trong trang người đàn ông mà bạn đang đề cập đến. Nếu đó là mô tả về CheckHostIPthì không, nó không nói rằng bạn từ bỏ bất kỳ sự bảo vệ nào. Với CheckHostIP no, người đánh lừa vẫn phải lấy khóa riêng của máy chủ và nếu cô ấy có thể làm điều đó, thì chắc chắn cô ấy cũng không thể giả mạo địa chỉ IP của nó.
Gilles 'SO- ngừng trở nên xấu xa'

Bạn có thể cho tôi một ví dụ về việc giả mạo DNS sẽ nguy hiểm như thế nào nếu tôi biết tôi tin tưởng vào khóa không? Tôi sử dụng xác thực khóa công khai để đăng nhập, điều này khiến máy chủ độc hại không thể lấy được mật khẩu, nhưng nếu tôi sử dụng mật khẩu thì sao?
Azendale

Sử dụng xác thực khóa công khai không thực sự bảo vệ mật khẩu của bạn, máy chủ có thể MITM bạn và lấy mật khẩu của bạn khi bạn sudohoặc tương tự.
lại
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.