Điểm:0

ssh-keyscan to known_hosts không tạo ra kết quả nào

lá cờ gb
A L

Khi tôi thực hiện:

ssh-keyscan -H 172.22.56.2

Tôi nhận được đầu ra sau:

# 172.22.56.2:22 SSH-2.0-RomSShell_4.31
# 172.22.56.2:22 SSH-2.0-RomSShell_4.31
# 172.22.56.2:22 SSH-2.0-RomSShell_4.31
# 172.22.56.2:22 SSH-2.0-RomSShell_4.31
# 172.22.56.2:22 SSH-2.0-RomSShell_4.31

Nếu sau đó tôi thử:

ssh-keyscan -H 172.22.56.2 >> ~/.ssh/known_hosts

Không quen thuộc với ssh-keyscan nhưng tôi tin rằng kết quả đầu ra tôi nhận được .. không phải thứ tôi đang tìm kiếm, tôi cũng đã thử các biến thể của -t như:

ssh-keyscan -H -t rsa 172.22.56.2 >> ~/.ssh/known_hosts

Tất cả các kết quả là như nhau. Quyền trên tệp là:

-rw-r--r-- 1 tên người dùng tên người dùng 886

'Tên người dùng' là tên chạy các lệnh ở trên .. Điều này để lại cho tôi những câu hỏi sau:

  1. Đầu ra ssh-keyscan của tôi giao tiếp/có nghĩa là gì? Tôi mong đợi một cái gì đó giống như |1|weofijgojw = sshkey string ở đây.
  2. Tại sao không có gì được ghi vào ~/.ssh/known_hosts bất kể? Không có dấu hiệu của các vấn đề được thông báo lại cho tôi/lệnh thực hiện

Cảm ơn bạn trước cho bất kỳ cái nhìn sâu sắc!

CẬP NHẬT 1:

user@hostname:~$ ssh [email protected]
Không thể thương lượng với 172.22.56.2 cổng 22: không tìm thấy phương pháp trao đổi khóa phù hợp. Ưu đãi của họ: diffie-hellman-group1-sha1

user@hostname:~$ ssh [email protected] -oKexAlgorithms=+diffie-hellman-group1-sha1
Không thể thương lượng với 172.22.56.2 cổng 22: không tìm thấy loại khóa máy chủ phù hợp. Ưu đãi của họ: ssh-dss

user@hostname:~$ ssh [email protected] -oKexAlgorithms=+diffie-hellman-group1-sha1 -oHostKeyAlgorithms=+ssh-dss
Không thể thương lượng với 172.22.56.2 cổng 22: không tìm thấy mật mã phù hợp. Ưu đãi của họ: 3des-cbc

user@hostname:~$ ssh [email protected] -oKexAlgorithms=+diffie-hellman-group1-sha1 -oHostKeyAlgorithms=+ssh-dss -oCiphers=+3des-cbc

Không thể thiết lập tính xác thực của máy chủ '172.22.56.2 (172.22.56.2)'.
Dấu vân tay của khóa DSA là SHA256:HwdMfb3k5KwrwQkFIRe6ZXilbObYhNzLbwb0zvk2n8U.
Bạn có chắc chắn muốn tiếp tục kết nối (có/không/[vân tay]) không? ^C

user@hostname:~$ ssh-keyscan -H 172.22.56.2
# 172.22.56.2:22 SSH-2.0-RomSShell_4.31
# 172.22.56.2:22 SSH-2.0-RomSShell_4.31
# 172.22.56.2:22 SSH-2.0-RomSShell_4.31
# 172.22.56.2:22 SSH-2.0-RomSShell_4.31
# 172.22.56.2:22 SSH-2.0-RomSShell_4.31

Việc thêm '-vv' chỉ áp dụng cho ứng dụng ssh chứ không phải ssh-keyscan nên tôi không tìm thấy bất kỳ điều gì hữu ích từ đó.

Về mặt kỹ thuật, các câu hỏi đặt ra ban đầu đã được trả lời, nhưng điều đó liên quan nhiều hơn đến việc tôi không có tầm nhìn đầy đủ về cuộc điều tra - có vẻ như tại thời điểm này, câu hỏi thực sự là:

  • Tại sao ssh-keyscan không trả lại kết quả khi ssh đến cùng một máy chủ tạo ra dấu nhắc khóa SSH?

Tôi có nên mở một câu hỏi mới hay chỉ thay đổi nội dung gửi ban đầu của mình? Cảm ơn bạn!

Ginnungagap avatar
lá cờ gu
Máy chủ được nhắm mục tiêu có khóa máy chủ RSA không?
dave_thompson_085 avatar
lá cờ jp
@Ginnungagap: OpenSSH kể từ 6.1 9 năm trước đã thử ít nhất 2 thuật toán và kết quả ở đây cho thấy nó đang thử 5! OP: các dòng `#` chỉ ghi rằng nó đang _cố_ lấy khóa; nếu nó thành công với `-H`, bạn sẽ nhận được một dòng có dạng `|1|base64|base64 tên thuật toán base64` và vì bạn không thành công, điều đó có nghĩa là máy chủ không cung cấp bất kỳ khóa nào mà OpenSSH của bạn hiểu được, do đó, có không có gì để ghi vào tệp known_hosts của bạn. `ssh -vv` sẽ hiển thị trong `debug2: thuật toán khóa máy chủ:` những gì máy chủ đang cung cấp.
A L avatar
lá cờ gb
A L
@dave_thompson_085 - bạn dave! Không phải là ssh saavy lắm, hãy theo dõi Q cho bạn nếu bạn không phiền - khi tôi cố gắng ssh [email protected] - Tuy nhiên, tôi nhận được lỗi mà mật mã/v.v. không được hỗ trợ, nếu tôi cung cấp các tùy chọn cũ với -o (KexAlgo/ciphers/hostkeyAlgo) - Tôi được cung cấp dấu vân tay RSA với lời nhắc có/không để chấp nhận.. Ty đã giải thích kết quả # - Tôi đã giả định điều gì đó tương tự!
dave_thompson_085 avatar
lá cờ jp
Tùy chọn kế thừa nào? (Thượng nguồn) OpenSSH vẫn cung cấp thuật toán ssh-rsa trên kết nối theo mặc định (tức là trong `myproposal.h`), mặc dù họ đã _warning_ họ sẽ xóa nó 'sớm' kể từ 8.2 vào năm 2020-02 và ssh-keyscan đã yêu cầu cả ssh-rsa và rsa-sha2-* mới hơn/tốt hơn (có chung rsa _key_) kể từ phiên bản 8.1 năm 2019-10. Bạn đang sử dụng cái nào và nó đã được vá hay cấu hình lại chưa?
A L avatar
lá cờ gb
A L
@dave_thompson_085 - aha - Tôi thực sự đã tách riêng vấn đề là ssh-keyscan không có các tùy chọn cũ đó theo mặc định ...bạn có biết cách cung cấp các tham số kế thừa tùy chọn tương tự trong bản cập nhật gần đây của tôi cho ssh-keyscan không? Tôi có nên viết lại các câu hỏi của mình xung quanh đó hay đặt một câu hỏi mới không?
Michael Hampton avatar
lá cờ cz
Như bạn có thể thấy, thiết bị từ xa chỉ cung cấp các thuật toán và mật mã trao đổi khóa _yếu_ đã lỗi thời. Một điều rất lạ đối với một [cung cấp thương mại](https://www.allegrosoft.com/product/iot-edge-device/romsshell/) ngày nay. Chúng không được bật theo mặc định trong ssh hiện đại ngày nay và như một người khác đã đề cập, cuối cùng sẽ bị xóa hoàn toàn. Thật kỳ lạ khi một công ty lại gọi điều này là "an toàn" nhưng tôi cho rằng có lẽ tôi đã thấy điều tồi tệ hơn. Chính xác thì thiết bị này là gì và bạn có thể thay thế nó bằng một thứ thực sự có bảo mật không?
A L avatar
lá cờ gb
A L
@MichaelHampton - Đồng ý, trong trường hợp này, đây là các bộ chuyển mạch/bộ định tuyến/AP của cisco đã có tuổi đời hàng chục năm (hoặc cũ hơn) - và chúng tệ đến mức này hoặc tệ hơn trong nhiều trường hợp. Từ góc độ bảo mật, các mẫu hệ thống hiện tại của chúng tôi bao gồm thiết bị hiện đại mà ssh-keyscan không gặp vấn đề gì khi truy vấn, Q này dành cho hạm đội cũ mà tôi đang vật lộn. Nói tóm lại - có một kế hoạch đang triển khai để loại bỏ dần những thứ này, nhưng có hàng nghìn thứ tôi muốn có thể tự động hóa trong thời gian tạm thời và đây là trở ngại lớn để thực hiện điều đó hiện tại. Không có cách nào để chuyển các tham số kế thừa sang ssh-keyscan?
Michael Hampton avatar
lá cờ cz
Có lẽ là có. Bạn đã kiểm tra trang người đàn ông?
A L avatar
lá cờ gb
A L
vâng - Tôi đang sử dụng: https://man.openbsd.org/ssh-keyscan.1 và nguồn ban đầu của tôi cho các tùy chọn kế thừa để thậm chí tải ứng dụng SSH bình thường để kết nối là từ đây: https://www.openssh. com/legacy.html - không có đối số nào trong ứng dụng cho thấy chúng có thể được cung cấp.. nhưng tôi muốn nhận phản hồi của cộng đồng trong trường hợp tôi thiếu/đọc sai nội dung nào đó!
dave_thompson_085 avatar
lá cờ jp
**AH! DSA!** Có, ssh-keyscan không thử DSA theo mặc định, ngay cả trước khi OpenSSH ngừng sử dụng nó (7.0 IIRC).`ssh-keyscan -t dsa` có thể hoạt động để lấy khóa (thậm chí 8.6 cũng đặt DHG1 cho kx _in scan_, nhưng có vẻ như tôi 7.4 trở lên sẽ không đặt 3des). Nhưng để thực sự _kết nối_ với `ssh` (hoặc `scp`, v.v.), bạn sẽ cần tất cả các tùy chọn bạn đã tìm thấy.
A L avatar
lá cờ gb
A L
@dave_thompson_085 - Ok, thật tuyệt - bạn nên biết điều đó! Tôi sẽ làm việc để kiểm tra điều này trong phòng thí nghiệm của mình, trong thời gian chờ đợi, bạn có muốn đăng một câu trả lời riêng để tôi có thể gắn cờ/chấp nhận không? Đây là một vấn đề rất khó chịu mà tôi chắc rằng những người khác trong lĩnh vực tự động hóa mạng sẽ gặp phải vấn đề mà tôi muốn có câu trả lời chính thức. Nếu tôi hoàn thành kiểm tra/xác nhận trước khi nhìn thấy bất kỳ nội dung nào được đăng ở đây, tôi sẽ tự viết một bản nhưng muốn ghi công cho bạn khi đến hạn! Cảm ơn bạn bất kể sự giúp đỡ của bạn.
Điểm:1
lá cờ jp

(Từ nhận xét cộng với cập nhật)

Vấn đề là thiết bị mục tiêu thực sự khập khiễng và rõ ràng (như được chẩn đoán bởi ssh) chỉ hỗ trợ các tùy chọn SSH cũ và gần như lỗi thời mà OpenSSH gần đây không thích.

Đầu tiên, nó chỉ có một khóa DSA (cũng được đánh vần là DSS trong SSH). ssh-keyscan theo mặc định chưa bao giờ yêu cầu khóa DSA, mặc dù tập hợp các loại mà nó yêu cầu rất đa dạng và hầu hết được bao gồm khác các loại mới đã được thêm vào; đó là lý do tại sao chạy nó mà không có tùy chọn hiển thị 5 nỗ lực -- để lấy các loại key mà thiết bị không có.Phần này có thể được cố định bằng cách xác định -tdsa.

Thứ hai, nó chỉ hỗ trợ DH nhóm 1 cho KEX và 3des-cbc để mã hóa. Mặc du ssh không còn coi nhóm 1 là an toàn và cần -oKexThuật toán= tùy chọn để sử dụng nó, ssh-keyscan buộc những gì trông giống như tất cả các nhóm KEX. Tuy nhiên, nó không làm thay đổi ssh mặc định cho mật mã, vì vậy ssh-keyscan trong OpenSSH 7.4 trở lên vẫn không thành công. Nếu bạn hạ cấp xuống dưới 7.4, tôi tin rằng ssh-keyscan -t dsa sẽ làm việc. Tất nhiên, việc hạ cấp có hại cho bảo mật, vì vậy bạn chỉ nên thực hiện việc này trên một con khỉ đầu, chẳng hạn như máy ảo hoặc vùng chứa sau đó bị loại bỏ.

Ngoài ra, như bạn đã tìm thấy, ssh có thể được cho -o các tùy chọn để chấp nhận các tùy chọn cũ này, vì vậy nó có thể lấy khóa máy chủ và thêm nó vào known_hosts. Nếu mối quan tâm của bạn chỉ là tránh tương tác, tức là tự động hóa, hãy sử dụng -oStrictHostKeyChecking=không (hoặc chấp nhận mới trong 7.6 trở lên) để thực hiện việc này mà không cần nhắc. Nếu bạn không muốn đặt khóa mới trực tiếp vào tệp, hãy sử dụng -oUserKnownHostsFile= để đặt nó ở một nơi khác -- mặc dù một khi bạn đã làm điều đó, thực sự điều duy nhất có thể làm với tệp mới là thêm nó vào known_hosts giống như ssh sẽ có, vậy tại sao phải bận tâm?

A L avatar
lá cờ gb
A L
ty hoặc nàyS! Tôi sẽ thêm cho bất kỳ ai đến đây thất vọng vì việc sử dụng hàng tồn kho an toàn ở trên - ANSIBLE KHÔNG SỬ DỤNG OPENSSH của hệ thống!! Nó sử dụng libssh hoặc paramiko cho các thiết bị mạng. Vì vậy, những điều trên chỉ hữu ích cho tự động hóa mạng nếu bạn đang xây dựng những thứ khác để có thể sử dụng được với dữ liệu.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.