সার্ভার আপডেটের পরে এসএসএইচ কাজ বন্ধ করে দিয়েছে? কি হলো?


9

আমি 10 বছরেরও বেশি সময় ধরে পিকেআই ভিত্তিক এসএসএইচ সংযোগগুলি ব্যবহার করছি। হঠাৎ একটি সার্ভার আপডেট হওয়ার পরে - কিছু সংযোগ কাজ বন্ধ করে দিয়েছে। আমি বছরের পর বছর ধরে একই পিকেআই কী ব্যবহার করছি (প্রতিটি সার্ভারের নিজস্ব কী রয়েছে, আমার ব্যক্তিগত কীগুলির একটি ছোট সেট রয়েছে)।

কাজ করা - দেখে মনে হচ্ছে:

C:\Users\michael>ssh2 -p 2222 root@192.168.129.64 date
Authentication successful.
Fri Nov 25 10:30:42  2016

কাজ না করা দেখে মনে হচ্ছে:

C:\Users\michael>ssh2 root@192.168.129.64 date
warning: Authentication failed.
Disconnected; key exchange or algorithm negotiation failed (Algorithm negotiation failed.).

কী বদলে গেল?


2
আমি যখনই এসএসএইচ আপগ্রেড বা পুনরায় কনফিগার করি তখনই সাধারণ সংযোগটি ডিবাগিংয়ের জন্য উন্মুক্ত রেখে আমি ততক্ষণে অন্য এসএসএইচ সংযোগটি খোলার চেষ্টা করি। এই পদ্ধতির সাহায্যে আপনার মতো দৃশ্যে ডিবাগ করতে সহায়তা করবে। আপনি এখনও সার্ভার অ্যাক্সেস আছে? অথবা আপনি সমস্যার সমাধান না করা অবধি সার্ভার সাইড লগগুলি দেখার জন্য অ্যাক্সেস ছাড়াই ক্লায়েন্টের পক্ষ থেকে এটি ডিবাগ করার চেষ্টা করছেন?
ক্যাস্পারড

1
সৌভাগ্যক্রমে আমার সর্বদা সার্ভারটিতে অ্যাক্সেস ছিল। সাধারণত, আপডেটগুলি প্রয়োগ করার সময় আমি 'কনসোলে' থাকার চেষ্টা করি - কারণগুলির মতো আপনি উল্লেখ করেছেন। আমি এখানে যা দেখানোর চেষ্টা করেছি তা হল যখন এটি কিছুটির জন্য কাজ করে (যেমন, সাম্প্রতিক পুট্টি), তবে অন্যের জন্য নয় (উদাহরণস্বরূপ, 14 বছরের পুরাতন এসএস-ক্লায়েন্ট যা উন্নত সাইফার, কেক্স এবং ম্যাক অ্যালগরিদমগুলি জানে না
মাইকেল অনুভূত

উত্তর:


14

একটি আপডেটের পরে - পার্শ্ব-প্রতিক্রিয়াগুলি খেলতে আসতে পারে। ওপেনএসএইচএইচ - ডিফল্ট প্রায়শই পরিবর্তন হয়। ওপেনবিএসডি (যারা ওপেনএসএসএইচ বজায় রাখে / বিকাশ করে) পিছনের সামঞ্জস্যের বিষয়ে উদ্বিগ্ন না হওয়ার জন্য ওপেনবিএসডি নীতি রয়েছে। এটি 'ব্রেক' করতে পারে যা পড়া ছিল, ভাল কাজ করছে working

একটি বিশাল ইঙ্গিত রয়েছে - এটি আমার সাথে প্রথম কখন ঘটেছিল তা আমি খেয়াল করি নি (জিইউআই ইন্টারফেস ব্যবহার করে এবং আমি এটি সরিয়ে ফেলেছিলাম এবং 'বোকা আপডেট - নতুন সংস্করণটি ভাঙ্গা' দিয়ে 'রাগান্বিত' হয়েছিলাম) নতুন সংস্করণটি সরিয়ে দেয় ভাঙা হয়নি - তবে ওপেনবিএসডি / ওপেনএসএসএইচ ওএসএসএস-6.7p1 দিয়ে শুরু হওয়া কী এক্সচেঞ্জের ডিফল্টগুলি পরিবর্তন করা দেখুন দেখুন: http://www.openssh.com/txt/release-6.7 , লক্ষণীয়:

ওপেনএসএইচ 6.6 থেকে পরিবর্তনসমূহ

সম্ভাব্য-অসম্পূর্ণ পরিবর্তন

  • sshd (8):
    অনিরাপদ অ্যালগরিদমগুলি অপসারণ করতে সাইফার এবং ম্যাকের ডিফল্ট সেটটি পরিবর্তন করা হয়েছে । বিশেষত, সিবিসি সাইফার এবং আরকফোর *
    ডিফল্টরূপে অক্ষম থাকে।


    সিফারস এবং ম্যাক্স sshd_config বিকল্পগুলির মাধ্যমে স্পষ্টভাবে কনফিগার করা থাকলে অ্যালগরিদমের পুরো সেটটি উপলব্ধ থাকে ।

আমার সমস্যাটি হ'ল আমার একটি পুরানো ক্লায়েন্ট রয়েছে যার নতুন কোনও ডিফল্ট নেই, তাই এটি সংযুক্ত হতে পারে না।

দুটি সমাধানের পথ: সার্ভারটি ফিক্স / প্যাচ করুন বা - ক্লায়েন্টকে ফিক্স / প্যাচ করুন।

সার্ভারের সমাধান: "পুরানো" সেটিংসটি ফিরিয়ে আনুন যাতে "পুরানো" ক্লায়েন্টরা এটির সাথে সংযোগ চালিয়ে যেতে পারে - বিদ্যমান ক্লায়েন্টদের সাথে বন্ধুত্বপূর্ণ - sshd_config ফাইলটি সম্পাদনা করুন এবং পুরানো সাইফারগুলির পিছনে (যথেষ্ট) যুক্ত করুন।

Sshd_config সত্ত্বে পরিবর্তন / যুক্ত করার জন্য মূল লাইনগুলি:

ciphers aes128-ctr,aes192-ctr,aes256-ctr,chacha20-poly1305@openssh.com,aes256-cbc
KexAlgorithms  curve25519-sha256@libssh.org,diffie-hellman-group-exchange-sha256,diffie-hellman-group14-sha1,diffie-hellman-group1-sha1
macs hmac-sha2-256,hmac-sha2-512,hmac-sha1-96,hmac-sha1

শুধু যোগ কর:

# Ciphers
# The dafaults starting with OpenSSH 6.7 are:
# aes128-ctr,aes192-ctr,aes256-ctr,chacha20-poly1305@openssh.com
# older clients may need an older cipher, e.g.
# ciphers aes128-cbc,aes192-cbc,aes256-cbc,blowfish-cbc,arcfour
# only adding aes256-cbc as an "old" cipher

ciphers aes128-ctr,aes192-ctr,aes256-ctr,chacha20-poly1305@openssh.com,aes256-cbc

# KEX Key Exchange algorithms
# default from openssh 6.7 are:
# curve25519-sha256@libssh.org,diffie-hellman-group-exchange-sha256,\
#  diffie-hellman-group14-sha1
# an older kex are: none,KexAlgorithms diffie-hellman-group1-sha1

# only adding diffie-hellman-group-sha1  as an "old" KEX
# and this should be deleted ASAP as it is clearly "one of the problems" with SSL based encryption
KexAlgorithms  curve25519-sha256@libssh.org,diffie-hellman-group-exchange-sha256,diffie-hellman-group14-sha1,diffie-hellman-group1-sha1

# MAC message authentification code
# the new defaults are:
# umac-64-etm@openssh.com,umac-128-etm@openssh.com,
# hmac-sha2-256-etm@openssh.com,hmac-sha2-512-
# etm@openssh.com,
# umac-64@openssh.com,umac-128@openssh.com,
# hmac-sha2-256,hmac-sha2-512

# older defaults (still supported) are:
# macs hmac-sha1,hmac-md5

# consider removing hmac-sha1-96,hmac-sha1,hmac-md5 "Soon!"
macs hmac-sha2-256,hmac-sha2-512,hmac-sha1-96,hmac-sha1

সমাধান # 2 - ক্লায়েন্টকে ঠিক করুন / প্রতিস্থাপন করুন

আপনার বর্তমান ক্লায়েন্ট কী সিফার সমর্থন করে তা দেখার একটি সহজ উপায় (সিএলআই অনুমান করে) ssh -hএবং এটি এর মতো কিছু সরবরাহ করে কিনা তা দেখুন:

Supported ciphers:
  3des-cbc,aes256-cbc,aes192-cbc,aes128-cbc,blowfish-cbc,twofish-cbc,twofish256-cbc,twofish192-cbc,twofish128-cbc,des-cbc@ssh.com,cast128-cbc,rc2-cbc@ssh.com,arcfour,none
Supported MAC algorithms:
  hmac-md5,hmac-md5-96,hmac-sha1,hmac-sha1-96,hmac-sha256@ssh.com,hmac-sha256-96@ssh.com,hmac-ripemd160@ssh.com,hmac-ripemd160-96@ssh.com,hmac-tiger128@ssh.com,hmac-tiger128-96@ssh.com,hmac-tiger160@ssh.com,hmac-tiger160-96@ssh.com,hmac-tiger192@ssh.com,hmac-tiger192-96@ssh.com,none

আর একটি দরকারী আদেশ হ'ল: ssh -V

ssh2: SSH Secure Shell 3.2.9 Windows Client
Product: SSH Secure Shell for Workstations
License type: none (non-commercial)

আমার - আমার ডেস্কটপের জন্য - খুব পুরানো ক্লায়েন্ট ছিলেন। উপরের দিকে তাকিয়ে আপনি দেখতে পাচ্ছেন যে এটি কোনও - 15 বছর পরে - পছন্দসই অ্যালগরিদমগুলিকে সমর্থন করে না, এমনকি এক-সিবিআর (ঘোরানো) নয়, কেবল-সিবিসি (ব্লক-অনুলিপি)।

যদি আপনার ক্লায়েন্টের কাছে কীগুলি ইত্যাদি সমর্থিত করার বিকল্প নেই তবে (ওপেনএসএসএইচ বিকল্প থাকা উচিত -Q) কেবল নিজের সাথে একটি সংযোগ শুরু করুন, উদাহরণস্বরূপ, ssh -v localhostএবং এর মতো লাইন রয়েছে যা আপনাকে ওয়াট জানাতে বলে:

debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug2: kex_parse_kexinit: ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group-exchange-sha256,diffie-hellman-group-exchange-sha1,diffie-hellman-grousha1,diffie-hellman-group1-sha1
debug2: kex_parse_kexinit: ecdsa-sha2-nistp256-cert-v01@openssh.com,ecdsa-sha2-nistp384-cert-v01@openssh.com,ecdsa-sha2-nistp521-cert-v01@openssh.com,ssh-rsa-cert-v01@openssh.ssh-dss-cert-v01@openssh.com,ssh-rsa-cert-v00@openssh.com,ssh-dss-cert-v00@openssh.com,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,ssh-rsa,ssh-dss
debug2: kex_parse_kexinit: aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,aes192-cbc,aes256-cbc,arcfour,rijndael-cbc@lysatiu.se
...

এবং যা পাওয়া গেল (এবং ব্যবহৃত হয়েছিল):

debug2: mac_setup: found hmac-sha1
debug1: kex: server->client aes128-ctr hmac-sha1 none
debug2: mac_setup: found hmac-sha1
debug1: kex: client->server aes128-ctr hmac-sha1 none

অতিরিক্ত: একটি ব্যর্থ সংযোগ থেকে ডিবাগ তথ্য - আরও বিশদ

বা, যা চেষ্টা করা হয়েছিল, তবে তা মিস হয়েছে।

debug: OpenSSH: Major: 7 Minor: 3 Revision: 0
debug: Ssh2Transport: All versions of OpenSSH handle kex guesses incorrectly.
debug: Ssh2Transport: Algorithm negotiation failed for c_to_s_cipher: client list: aes128-cbc,3des-cbc,twofish128-cbc,cast128-cbc,twofish-cbc,blowfish-cbc,aes192-cbc,aes256-cbc,twofish192-cbc,twofish256-cbc,arcfour vs. server list : chacha20-poly1305@openssh.com,aes128-ctr,aes192-ctr,aes256-ctr,aes128-gcm@openssh.com,aes256-gcm@openssh.com
debug: Ssh2Transport: Algorithm negotiation failed for s_to_c_cipher: client list: aes128-cbc,3des-cbc,twofish128-cbc,cast128-cbc,twofish-cbc,blowfish-cbc,aes192-cbc,aes256-cbc,twofish192-cbc,twofish256-cbc,arcfour vs. server list : chacha20-poly1305@openssh.com,aes128-ctr,aes192-ctr,aes256-ctr,aes128-gcm@openssh.com,aes256-gcm@openssh.com
debug: Ssh2Transport: lang s to c: `', lang c to s: `'
debug: Ssh2Transport: Couldn't agree on kex or hostkey alg. (chosen_kex = NULL, chosen_host_key = ssh-rsa)
debug: Ssh2Common: DISCONNECT received: Algorithm negotiation failed.

সম্পাদনা করুন: 02-জানু -2017 যুক্ত হয়েছে

নতুন বিভাগ - কী বন্ধ হবে কীগুলি কী কাজ বন্ধ করে দেয়?

আমার সার্ভারে আমার একটি 'পুরাতন' ক্লায়েন্ট এবং 'সর্বশেষ' ক্লায়েন্ট ইনস্টল রয়েছে - এবং একটি সার্ভারের সাথে সংযোগ করার জন্য বিভিন্ন আচরণ পেতে পারি। এখানে সমস্যাটি সিফার-মিস-মিল নয় - তবে ডিএসএ-এর ভিত্তিতে একটি প্রত্নতাত্ত্বিক পিকেআই জুটির ব্যবহার ।

সংক্ষেপে, ওপেনশ -7 (.3) আর ডিএসএ পাবলিক কীগুলি পাঠায় না (ডিফল্টরূপে, সম্ভবত মোটেও নয়)।

নীচে আমি ওপেনশ
/ ইউএসআর / বিন / এসএসএস (পুরানো সংস্করণ, বাম দিক) এবং
/ অপ্ট / বিন / এসএস (নতুন সংস্করণ, ডানদিকের) দুটি সংস্করণের আউটপুট তুলনা করব - কমান্ডটি হ'ল:

${version}/ssh -v user@host date

আপনি নীচের আউটপুটটি স্ক্যান করার সাথে সাথে আমি আশা করি আপনি ধাপগুলি লক্ষ্য করেন এবং বার্তাগুলি একই রকম হয়। মূল পার্থক্যটি এসএসএইচ 2_MSG_SERVICE_ACCEPT স্ট্রিংয়ের পরে আসে

আমি আপনাকে যে বিষয়টি খেয়াল করতে চাই তা হ'ল পুরানো সংস্করণটি অফার করে (এবং 'পুরানো' সার্ভার দ্বারা গৃহীত হয় - ডিএসএ ভিত্তিক কী যুগল যখন নতুন সার্ভার কখনই ডিএসএ ভিত্তিক কী অফার করে না।

দ্রষ্টব্য: এর জন্য 'সমাধান' হ'ল (কমপক্ষে একটির মধ্যে) আরএসএ, একডসা বা এডি 25519 ভিত্তিক পিকেআই জোড়া যুক্ত করা।

OpenSSH_6.0p1, OpenSSL 1.0.2h  3 May 2016                     | OpenSSH_7.3p1, OpenSSL 1.0.2h  3 May 2016
debug1: Reading configuration data /etc/ssh/ssh_config        | debug1: Reading configuration data /var/openssh/etc/ssh_confi
debug1: Failed dlopen: /usr/krb5/lib/libkrb5.a(libkrb5.a.so): <
        0509-026 System error: A file or directory in the pat <
                                                              <
debug1: Error loading Kerberos, disabling Kerberos auth.      <
debug1: Connecting to x061 [192.168.129.61] port 22.            debug1: Connecting to x061 [192.168.129.61] port 22.
debug1: Connection established.                                 debug1: Connection established.
debug1: identity file /home/michael/.ssh/id_rsa type 1          debug1: identity file /home/michael/.ssh/id_rsa type 1
                                                              > debug1: key_load_public: No such file or directory
debug1: identity file /home/michael/.ssh/id_rsa-cert type -1    debug1: identity file /home/michael/.ssh/id_rsa-cert type -1
debug1: identity file /home/michael/.ssh/id_dsa type 2          debug1: identity file /home/michael/.ssh/id_dsa type 2
                                                              > debug1: key_load_public: No such file or directory
debug1: identity file /home/michael/.ssh/id_dsa-cert type -1    debug1: identity file /home/michael/.ssh/id_dsa-cert type -1
debug1: identity file /home/michael/.ssh/id_ecdsa type 3        debug1: identity file /home/michael/.ssh/id_ecdsa type 3
                                                              > debug1: key_load_public: No such file or directory
debug1: identity file /home/michael/.ssh/id_ecdsa-cert type -   debug1: identity file /home/michael/.ssh/id_ecdsa-cert type -
debug1: Remote protocol version 2.0, remote software version  | debug1: key_load_public: No such file or directory
debug1: match: OpenSSH_6.0 pat OpenSSH*                       | debug1: identity file /home/michael/.ssh/id_ed25519 type -1
                                                              > debug1: key_load_public: No such file or directory
                                                              > debug1: identity file /home/michael/.ssh/id_ed25519-cert type
debug1: Enabling compatibility mode for protocol 2.0            debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_6.0              | debug1: Local version string SSH-2.0-OpenSSH_7.3
                                                              > debug1: Remote protocol version 2.0, remote software version
                                                              > debug1: match: OpenSSH_6.0 pat OpenSSH* compat 0x04000000
                                                              > debug1: Authenticating to x061:22 as 'padmin'
debug1: SSH2_MSG_KEXINIT sent                                   debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received                               debug1: SSH2_MSG_KEXINIT received
debug1: kex: server->client aes128-ctr hmac-md5 none          | debug1: kex: algorithm: ecdh-sha2-nistp256
debug1: kex: client->server aes128-ctr hmac-md5 none          | debug1: kex: host key algorithm: ssh-rsa
                                                              > debug1: kex: server->client cipher: aes128-ctr MAC: umac-64@o
                                                              > debug1: kex: client->server cipher: aes128-ctr MAC: umac-64@o
debug1: sending SSH2_MSG_KEX_ECDH_INIT                          debug1: sending SSH2_MSG_KEX_ECDH_INIT
debug1: expecting SSH2_MSG_KEX_ECDH_REPLY                       debug1: expecting SSH2_MSG_KEX_ECDH_REPLY
debug1: Server host key: RSA 9f:0a:4d:a8:1b:ba:e6:d4:1a:b2:cd | debug1: Server host key: ssh-rsa SHA256:ORf5UVI7mRm/9MthM2qXM
debug1: Host 'x061' is known and matches the RSA host key.      debug1: Host 'x061' is known and matches the RSA host key.
debug1: Found key in /home/michael/.ssh/known_hosts:57          debug1: Found key in /home/michael/.ssh/known_hosts:57
debug1: ssh_rsa_verify: signature correct                     | debug1: rekey after 4294967296 blocks
debug1: SSH2_MSG_NEWKEYS sent                                   debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS                              debug1: expecting SSH2_MSG_NEWKEYS
                                                              > debug1: rekey after 4294967296 blocks
debug1: SSH2_MSG_NEWKEYS received                               debug1: SSH2_MSG_NEWKEYS received
debug1: Roaming not allowed by server                         | debug1: Skipping ssh-dss key /home/michael/.ssh/id_dsa - not
debug1: SSH2_MSG_SERVICE_REQUEST sent                         <
debug1: SSH2_MSG_SERVICE_ACCEPT received                        debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey,password   debug1: Authentications that can continue: publickey,password
debug1: Next authentication method: publickey                   debug1: Next authentication method: publickey
debug1: Offering RSA public key: /home/michael/.ssh/id_rsa      debug1: Offering RSA public key: /home/michael/.ssh/id_rsa
debug1: Authentications that can continue: publickey,password   debug1: Authentications that can continue: publickey,password
debug1: Offering DSA public key: /home/michael/.ssh/id_dsa    | debug1: Offering ECDSA public key: /home/michael/.ssh/id_ecds
debug1: Server accepts key: pkalg ssh-dss blen 433            | debug1: Authentications that can continue: publickey,password
debug1: read PEM private key done: type DSA                   | debug1: Trying private key: /home/michael/.ssh/id_ed25519
debug1: Authentication succeeded (publickey).                 | debug1: Next authentication method: keyboard-interactive
Authenticated to x061 ([192.168.129.61]:22).                  | debug1: Authentications that can continue: publickey,password
debug1: channel 0: new [client-session]                       | debug1: Next authentication method: password
debug1: Requesting no-more-sessions@openssh.com               | padmin@x061's password:
debug1: Entering interactive session.                         |

আমি এখানেও ডেবিয়ান ৮-এ আপগ্রেড হওয়ার সাথে সাথে ব্যবহারকারীরা অপ্রচলিত প্রোটোকলগুলির কীগুলি সম্পর্কে অভিযোগ করেছিলেন
রুই এফ রিবেইরো

1
আমি উল্লেখ করতে ভুলে গেছি - যে আমার উইন্ডোগুলির জন্য আমি পুটিতে স্যুইচ করেছিলাম (ssh.com কেবল ব্যবসায়গুলিতে বিক্রি করে) - ssh2তারা আমাকে গ্রহণ করত তবে থাকতেন - প্রধানত scpএকই উইন্ডো থেকে স্থানান্তর করার সুবিধার্থেssh
মাইকেল ফেল্ট

1
বহু বছরের প্রাচীন ক্লায়েন্ট ব্যবহার না করে এবং সম্ভবত ভাঙ্গা অ্যালগরিদমগুলি সক্ষম করার পরিবর্তে আপনার ক্লায়েন্টকে আপডেট করুন।
জাকুজে

1
দেখুন আপনার SSH কী আপগ্রেড করুন! আরও তথ্যের জন্য, তবে @ যাকুজে যেমন বলেছেন, পুরানো চাবি, পুরাতন ক্লায়েন্ট এবং পুরানো অ্যালগরিদম রাখা খারাপ ধারণা।
স্টিফেন কিট

কীটির বয়স কোনও সমস্যা নয়, imho - তবে প্রকার এবং আকার। "ডিএসএ" বেরিয়েছে, "আরএসএ" কমপক্ষে 2048-বিট। 'বেটার' হল এক্সডসা। যেমন @ জাকুজে উল্লেখ করেছেন - এবং এই প্রশ্নোত্তরটি কী - ক্লায়েন্ট আপডেট করে - তবে এটি ডিফল্ট আপডেটও করে। ক্লায়েন্ট হিসাবে আপনি 'ডিমান্ড' করতে পারেন কোনও সার্ভার দুর্বল (আরও খারাপ ভাঙ্গা) প্রস্তাব না দিয়ে আরও ভাল অ্যালগরিদম ব্যবহার করে।
মাইকেল
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.