Làm cách nào tôi có thể xác định MAC, Mật mã, Độ dài khóa và KexAlogrithms được hỗ trợ bởi các máy chủ ssh của tôi?
Tôi cần tạo một danh sách cho kiểm toán bảo mật bên ngoài. Tôi đang tìm kiếm một cái gì đó tương tự openssl s_client -connect example.com:443 -showcerts
. Từ nghiên cứu của tôi, việc ssh
sử dụng các mật mã mặc định như được liệt kê trong man sshd_config
. Tuy nhiên tôi cần một giải pháp tôi có thể sử dụng trong tập lệnh và . Tôi cần phải tự sửa ở đây: Bạn có thể chỉ định man sshd_config
không liệt kê thông tin về độ dài khóaServerKeyBits
trong sshd_config
.
Tôi đoán rằng ssh -vv localhost &> ssh_connection_specs.out
sẽ trả về thông tin tôi cần nhưng tôi không chắc liệu mật mã được liệt kê là mật mã được hỗ trợ bởi máy khách hay bởi máy chủ. Ngoài ra, tôi không chắc chắn làm thế nào để chạy không tương tác này trong một tập lệnh.
Có một cách thuận tiện để có được SSH
thông tin kết nối?
ssh -vv
xuất các chức năng được hỗ trợ như máy khách đến máy chủ (ctos) và máy chủ cho máy khách (stoc). Tuy nhiên, dường như những đầu ra đó bị giới hạn ở những gì cả hai bên hỗ trợ, khiến chúng ít hữu ích hơn cho kiểm toán bảo mật.
sshd -T | grep "\(ciphers\|macs\|kexalgorithms\)"
như được đề xuất bởi @Jakuje chỉ hoạt động trên các máy chủ RHEL7, nhưng không hoạt động trên RHEL6. Tôi đã kết thúc bằng cách sử dụngnmap --script SSH2-hostkey localhost
vànmap --script ssh-hostkey localhost