ECDSA ධාරක යතුර පිළිබඳ අනතුරු ඇඟවීම නිවැරදි කරන්නේ කෙසේද


322

මම උබුන්ටු සේවාදායකයක් සමඟ මුරපදය අඩු SSH සැකසීමට උත්සාහ කරමි ssh-copy-id myuser@myserver, නමුත් මම දෝෂය ලබා ගනිමි:

අවවාදයයි: 'myserver' සඳහා වන ECDSA ධාරක යතුර IP ලිපිනය '192.168.1.123' සඳහා යතුරට වඩා වෙනස් වේ.

මෙයට හේතුව කුමක්ද, මම එය නිවැරදි කරන්නේ කෙසේද? මම .sshදුරස්ථ යන්ත්‍රයේ නාමාවලිය මකා දැමීමට උත්සාහ කළෙමි , සහ ssh-keygen -R "myserver"දේශීයව ධාවනය කළෙමි , නමුත් මෙය දෝෂය විසඳන්නේ නැත.


මගේ නඩුවේදී, මම සේවාදායකය (ip) වසම සමඟ බැඳීම වෙනස් කරමි, පසුව The ECDSA host key for server has changed. මගේ ක්‍රමය වන්නේ වසම පිළිබඳ අදාළ හැඹිලි නූල ඉවත් කිරීමයි ~/.ssh/known_hosts. එවිට ssh ක්රියා කරයි.
නින්ජා

Answers:


477

192.168.1.123දේශීය යන්ත්‍රය සඳහා හැඹිලි යතුර ඉවත් කරන්න :

ssh-keygen -R 192.168.1.123

14
නිවසේ සිට SSHing කරන විට අලුතින් ස්ථාපනය කරන ලද ඩේබියන් සේවාදායකයේ මා වෙනුවෙන් වැඩ කළේ නැත. එසේම, පිළිතුර ඉතා වෙහෙසකරය.
ක්‍රිස් කේ

/home/wf/.ssh/known_hosts යාවත්කාලීන කරන ලදි. මුල් අන්තර්ගතය /home/wf/.ssh/known_hosts.old ලෙස රඳවා තබා ඇත "අවවාදයයි: 'xxxx' IP ලිපිනය සඳහා ECDSA ධාරක යතුර ස්ථිරවම දන්නා ධාරක ලැයිස්තුවට එක් කළේය." දර්ශනය වේ. එවිට එය ක්‍රියාත්මක වන බව පෙනේ
වුල්ෆ්ගැන්ග් ෆාල්

17
යතුර ඉවත් කිරීම වෙනුවට ඔබට එය යාවත්කාලීන කළ හැකිය. ssh-keyscan -t ecdsa my.server.domain >> ~/.ssh/known_hostsසත්කාරකයට සම්බන්ධ වන විට නව යතුරක් සත්‍යාපනය කිරීමට අවශ්‍ය නොවන බව පසුව භාවිතා කරන්න .
ඇලෙක්ස්

2
එය ක්‍රියාත්මක කිරීමට අසමත් වන්නේ කාටද: මම එකම IP: 1 / එකී IP ලිපිනය (xx.xx.xx.xx), වසම (tomsihap.fr), සැපයුම්කරු විසින් ලබා දී ඇති vps සේවාදායකයේ ගුණක අවස්ථා ලියාපදිංචි කර ඇත. ලිපිනය (vpsxxx.ovh.net). ssh-keygen -R මේ සෑම එකක් සඳහාම වැඩ කළා.
ටොම්සිහාප්

මා වෙනුවෙන් වැඩ කළ නමුත් ව්‍යාකූලත්වය මෙම විධානය ක්‍රියාත්මක කළ යුත්තේ කුමන සත්කාරක සමාගමෙන් විය හැකිද? පිළිතුර දෝෂය ප්‍රදර්ශනය කළ තැනැත්තාගෙන් ය. දෙවන ප්‍රශ්නය සහ පිළිතුර වඩාත් පැහැදිලිය, නමුත් එසේ නම්: ssh-keygen -R වෙත යැවිය යුතු ලිපිනය කුමක්ද? දෝෂ ප්‍රකාශයේ දැක්වෙන ලිපිනය.
රස් බැට්මන්

70

මගේ නඩුවේ ssh-keygen -R ...අනතුරු ඇඟවීම නිවැරදි කළේ නැත. මට මේ වගේ අමතර තොරතුරු තිබුණා:

Offending key for IP in /home/myuser/.ssh/known_hosts:8
Matching host key in /home/myuser/.ssh/known_hosts:24

මම හුදෙක් ~/.ssh/known_hosts8 වන පේළිය ("අමනාප යතුර") අතින් සංස්කරණය කර මකා දැමුවෙමි. මම නැවත සම්බන්ධ වීමට උත්සාහ කළෙමි, ධාරකය ස්ථිරවම එකතු කරන ලදි, පසුව සියල්ල හොඳින් විය!


3
චාම් එකක් වගේ වැඩ කරනවා. sed -e '8d' /home/myuser/.ssh/known_hostsපේළි අංකය 8සහ ගොනු නාමය ඔබේ පද්ධතියේ පෙන්වන ඒවා සමඟ එක් පේළියකින් මෙය නිවැරදි කළ හැකිය .
ඇලෙක්ස් පී. මිලර්

මෙම ප්‍රවේශය පිළිබඳ මගේ ගැටළුව වූයේ known_hosts:8ශුන්‍ය-සුචිගත කළ අගයක් හෝ නැතත් එය තරමක් ව්‍යාකූල වීමයි. එය 1: 1 සිතියම්ගත කිරීමක් බව දැන ගැනීම සතුටක් ...
ඩැනියෙල් එෆ්

ඔබ 2022 වැනි සම්මත නොවන වරායක් භාවිතා කරන්නේ නම් මෙය සිදුවන බව මම දුටුවෙමි. එවැනි අවස්ථාවකදී ඔබ කළ යුත්තේssh-keygen -R [hostname]:2022
ඇලෙක්සැන්ඩර් මැල්ෆයිට්

මම මකා දැමුවහොත් ~/.ssh/known_hosts, සත්‍යතාව තහවුරු කළ නොහැකි බවට පණිවුඩය මට ලැබෙන අතර "ඔබට දිගටම සම්බන්ධ වීමට අවශ්‍ය යැයි ඔබට විශ්වාසද". "ඔව්" යනුවෙන් පිළිතුරු දීම සම්බන්ධ වීමට උත්සාහ කරයි. මම දෙවන වරට සම්බන්ධ වීමට උත්සාහ කළහොත්, මා ආරම්භ කළ ඊසීඩීඑස්ඒ ධාරක යතුරු දෝෂය මට ලැබේ.
ආරොන් ෆ්‍රෑන්ක්

20

මගේ LAN පරිගණක සහ මගේ වෙබ් හොස්ටිං ගිණුම් දෙක අතර මම බොහෝ දේ කරමි, එබැවින් මම SSH සමඟ සියලු ආකාරයේ අවාසි සහ අවසානයන් වර්ග කර ඇත්තෙමි ssh -v.

මෙම ගැටලුව විසඳා ඇති අතර පිළිතුරු ගැන සතුටු නොවීම නිසා මට අවශ්‍ය වූයේ "ඇයි" මා දැන ගැනීමටයි ...

මගේ නඩුවේ ප්‍රේරකය නම්: නව සේවාදායක මෙහෙයුම් පද්ධතියක් ස්ථාපනය කර ඇති අතර opensh-server පැකේජය ස්ථාපනය කිරීමෙන් පසුව, වැඩ සේවාදායකයේ නව ධාරක යතුරු කට්ටලයක් ජනනය කරන ලදි. මීට පෙර, මගේ සියලුම සේවාදායක මෙහෙයුම් පද්ධති උබුන්ටු වූ අතර මෙවර එය ඩේබියන් ලෙස වෙනස් විය (තවද අවසරවල සුළු වෙනසක් ඇතැයි මම සැක කරමි).

සියලුම මෙහෙයුම් පද්ධති උබුන්ටු වූ විට සහ මම සේවාදායකයේ මෙහෙයුම් පද්ධතියක් නැවත ස්ථාපනය කරන විට, පළමු එස්එස්එච් වෙත, මට මේ ආකාරයේ අනතුරු ඇඟවීමක් ලැබෙනු ඇත, ඉහත නිහ silent අනතුරු ඇඟවීමට වඩා මම කැමති!

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that the RSA host key has just been changed.
The fingerprint for the RSA key sent by the remote host is
06:ea:f1:f8:db:75:5c:0c:af:15:d7:99:2d:ef:08:2a.
Please contact your system administrator.
Add correct host key in /home/user/.ssh/known_hosts to get rid of this message.
Offending key in /home/user/.ssh/known_hosts:4
RSA host key for domain.com has changed and you have requested strict checking.
Host key verification failed.

එවිට මම ~/.ssh/known_hostsssh ආරම්භ කරමින් පරිගණකය විවෘත කර , එම රේඛාව මකා දමන්න, නැවත සම්බන්ධ කරන්න, මෙය සිදු වේ:

chris@home ~ $ ssh work
The authenticity of host '[work]:11122 ([99.85.243.208]:11122)' can't be established.
ECDSA key fingerprint is 56:6d:13:be:fe:a0:29:ca:53:da:23:d6:1d:36:dd:c5.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '[work]:11122 ([99.85.243.208]:11122)' (ECDSA) to the list of known hosts.
Linux rock 3.2.0-4-amd64 #1 SMP Debian 3.2.51-1 x86_64

ඒ ගැන ටිකක්: 11122 යනු ෆයර්වෝලය මත සිට එස්එස්එච් හරහා ගමන් කරන වරාය අංකයයි

මම කලින් උබුන්ටු සේවාදායකයකින් උපස්ථ පරීක්ෂා කර මගේ නව ඩේබියන් ස්ථාපනයට වඩා වෙනස් විය:

Ubuntu:                                            Debian:
# Package generated configuration file             # Package generated configuration file
# See the sshd(8) manpage for details              # See the sshd_config(5) manpage for details

# What ports, IPs and protocols we listen for      # What ports, IPs and protocols we listen for
Port 22                                            Port 22
# Use these options to restrict which interface    # Use these options to restrict which interfaces
#ListenAddress ::                                  #ListenAddress ::
#ListenAddress 0.0.0.0                             #ListenAddress 0.0.0.0
Protocol 2                                         Protocol 2
# HostKeys for protocol version 2                  # HostKeys for protocol version 2
HostKey /etc/ssh/ssh_host_rsa_key                  HostKey /etc/ssh/ssh_host_rsa_key
HostKey /etc/ssh/ssh_host_dsa_key                  HostKey /etc/ssh/ssh_host_dsa_key
------------------------------------------------   HostKey /etc/ssh/ssh_host_ecdsa_key
#Privilege Separation is turned on for security    #Privilege Separation is turned on for security
UsePrivilegeSeparation yes                         UsePrivilegeSeparation yes

ඔව්, බොහෝ විට, සත්කාරක සමාගම මෑතකදී ecdsa යතුරු භාවිතා කිරීම ආරම්භ කළ අතර, එය උබුන්ටු හි මෑත කාලීන වෙනස්කම් මත පදනම්ව, යාවත්කාලීනයකට මම දොස් පවරමි. මම ගණන් කළ ගල්- l න ලිනක්ස් මෙහෙයුම් පද්ධතියෙන් උබුන්ටු මාරුවීම නිසා මම මේ වතාවේ ඩෙබියන් ස්ථාපනය කළේ ඇයි.

මම ecdsa හි ආරක්ෂාවක්. SE q / a කියවා ඇති අතර දැනටමත් එම රේඛාව sshd_configමගේ නව ඩේබියන් සේවාදායකයෙන් ඉවත් කර ඇත . (සහ දිව්වා service ssh restart)


2
ලස්සන පැත්තේ සැසඳීම් කොටස සඳහා +1. "උබුන්ටු පාෂාණමය l න ලිනක්ස් මෙහෙයුම් පද්ධතියෙන් ඉවතට මාරුවීම" යන්නෙන් ඔබට පැහැදිලි කළ හැකි URL එකක් එකතු කළ හැකිද?
bgoodr

@bgoodr එය මගේ මතය වන අතර තනිකරම පදනම් වී ඇත්තේ පසුගිය වසර කිහිපය තුළ කිහිප වතාවක්ම මගේම RAID ගොනු සේවාදායකයක් සැකසීම මත ය. : / පිළිතුර සඳහා කපටි, නමුත් ගොග්ලිං කිරීම ආරම්භ කරන්න ubuntu debian server, එවිට මා අදහස් කරන දේ ඔබට පෙනෙනු ඇත.
ක්‍රිස් කේ

1
H ක්‍රිස්ක් ඔබ, ලොක්කා. සවිස්තරාත්මක, නමුත් සංක්ෂිප්ත පිළිතුරට ස්තූතියි.
සර්ගාස්

7

සෑම විටම විමසුම සිදුවන්නේ ගතික ලිපින භාවිතා කරන විට IP ලිපින සෑම විටම වෙනස් වන බැවිනි. ස්ථිතික IP භාවිතා කිරීමට උත්සාහ කරන්න එවිට ඔබට යතුර එක් වරක් පමණක් එක් කළ යුතුය.


1
හොඳ කරුණක් නම්, යමෙකු ගතික අයිපී සඳහන් කළ ස්ථානය මට මග හැරුණාද?
ක්‍රිස් කේ

IP ලිපින මොනවාද යන්න පිළිබඳව ඔබට පාලනයක් නොමැති විට ගැටළුව සමඟ කටයුතු කරන්නේ කෙසේද යන්න පිළිබඳ යෝජනා තිබේද?
මයිකල්

Ic මයිකල්, අපි මෙහි වැඩ කරන්නේ කුමක් ද? ඔබට රවුටරය පිටුවට ප්‍රවේශය තිබේද? ඔබට පාලනය කළ හැකි සේවාදායකයක් තිබේද (රෙන්ඩෙස්වස් ලක්ෂ්‍යයක් ලෙස ක්‍රියා කිරීමට)? ඔබට බහුකාස්ට් ඩීඑන්එස් (mdns: Apple Bonjour / Avahi) ගැනද සලකා බැලිය හැකිය. known_hostsගොනුවේ IP ලිපිනය වෙනස් කරන ස්ක්‍රිප්ටයක් සාදන්න .
ගෞරව් ජෝශප්

ඩීඑච්සීපී භාවිතා කරන ආයතනික පරිසරයක බොහෝ විට කෙනෙකුට IP ලිපින පැවරුම් සමඟ සම්බන්ධ වීමට අවසර නැත. ස්ක්‍රිප්ට් අදහස සිත්ගන්නා සුළුය, නමුත් මම හිතන්නේ ඔබට වෙනත් යන්ත්‍රයක දන්නා_හෝස්ට් ගොනුව වෙනස් කිරීමට අවශ්‍ය වනු ඇත, නේද? සමහර විට විශ්වාසය එක් දිශාවකට පමණක් ගලා යයි (එනම් බී විශ්වාස කිරීමට ලොග් වීමට A විශ්වාස කරයි, නමුත් අනෙක් අතට නොවේ) මෙය වඩාත් උපක්‍රමශීලී විය හැකිය.
මයිකල්

නැත, යතුරු එලෙසම පවතින බැවින් ඔබේ දේශීය දන්නා_හෝස්ට් ගොනුවේ ධාරකයේ IP (ssh සේවාදායකය) වෙනස් කිරීමට අවශ්‍ය වන්නේ ඔබේ යන්ත්‍රයට පමණි. ඔබට එය යන්ත්‍ර දෙකේම සිදු කිරීමට අවශ්‍ය නම්, ඒ දෙකෙහිම ස්ක්‍රිප්ට් ස්ථාපනය කරන්න. විසඳුමක් නිර්මාණය කිරීමට ඔබට තවත් උදව් අවශ්‍ය නම් මා අමතන්න.
ගෞරව් ජෝශප්

6

ssh-keygen -f "/root/.ssh/known_hosts" -R 192.168.1.123

මෙය දන්නා_හෝස්ට්ස් යටතේ පවතින යතුරු ප්‍රතිස්ථාපනය කර නව එකක් නිර්මාණය කළ යුතුය. මෙම විසඳුම මා වෙනුවෙන්ම ක්‍රියාත්මක විය


4

මම පහත දැක්වෙන රේඛා මගේ ~ / .ssh / config වෙත එක් කළ අතර එමඟින් සියලු .local ලිපින සඳහා දැඩි ධාරක පරීක්ෂාව අක්‍රීය කර ඇත. (ඩීඑච්සීපී ලිපින වෙන් කිරීමත් සමඟ, මගේ දේශීය යන්ත්‍රවල අයිපී ලිපින සෑම විටම වෙනස් වේ)

host *.local
    StrictHostKeyChecking no

ඔබට තවමත් අනතුරු ඇඟවීම ලැබුණත් එය මට හොඳයි.


2

සම්බන්ධ කිරීම සඳහා ඔබ එකම පරිශීලකයෙකු භාවිතා කරනවාද?

ඔබ ජෝන් වැනි දේශීය පරිගණකයකට පිවිසී ඇඩොල්ෆ් @ බී වැනි සේවාදායකයට සම්බන්ධ වී ඇති අතර සියල්ල හරි නම්, ඔබ ජේන් වැනි දේශීය පරිගණකයට ලොග් වී සේවාදායකයට සම්බන්ධ වන්නේ නම් සියල්ල හරි යැයි එයින් අදහස් නොවේ. B පරිශීලක ඇඩොල්ෆ් like බී වැනි ය .

මුරපදයකින් තොරව PC A වෙතින් Bed පරිශීලක ලෙස B සේවාදායකයට පිවිසීමට ඔබට අවශ්‍ය නම් , මෙම විධානය උත්සාහ කරන්න, සියල්ල PC A වෙතින් :

ssh-keygen -t rsa

මෙම විධානය මඟින් යතුර ජනනය කරන අතර යතුර ගොනුවේ ගබඩා කරයි. කරුණාකර මුරපදය හිස්ව තබන්න.

ssh Beda@B mkdir -p .ssh

මෙම විධානය මඟින් ඩිරෙක්ටරිය නිර්මාණය කරයි, ඒවා දැනටමත් නොපවතී නම්. එසේ නොමැතිනම් දෝෂ පණිවිඩයක් මුද්‍රණය නොකරන්න.

cd ~/.ssh

මෙම විධානය මඟින් ඔබේ පරිශීලකයින්ගේ නිවාස නාමාවලියට නාමාවලිය වෙනස් කරයි ./ssh.

cat id_rsa.pub | ssh Beda@B 'cat >> .ssh/authorized_keys'

මෙම විධානය ගොනුව මුද්රණය කරයි id_rsa.pub බවට (ඔබගේ පොදු යතුර) authorized_keys සේවාදායකය මත.

වැදගත්: බෙඩා යනු ඔබ සම්බන්ධ කරන සේවාදායකයේ ඔබගේ පරිශීලක නාමයයි, B යනු ඔබේ සේවාදායක IP ය.

දැන් ඔබට මුරපදයක් හෝ මුරපදයක් නොමැතිව B සේවාදායකයට සම්බන්ධ විය හැකිය:

ssh Beda@B

1
නැතහොත් අමතර කරදරයකින් තොරව ඔබගේ id_rsa.pub යතුර සමඟ බලයලත්_කයිස් ගොනුවක් පුරවා ගැනීමට ssh-copy-id භාවිතා කරන්න.
බ්ලැක්බැට්

1

පොට මෙතන උදව් කරන්න පුළුවන්.

අත්‍යවශ්‍යයෙන්ම, ඔබට අවශ්‍ය වන්නේ එම සත්කාරක සමාගම සඳහා වන RSA සහ ECDSA යතුරු ඉවත් කිරීමටය, ඉන්පසු මෙම ගැටුමට හේතු නොවන අයුරින් ssh-keyscanඒවා නැවත ඔබේ known_hostsගොනුවට දැමීමට භාවිතා කරන්න . මට එකම ප්‍රශ්නය ඇති වූ විට එය මට ප්‍රයෝජනවත් විය.


1

ප්‍රශ්නය: මෙයට හේතුව කුමක්ද?

එබැවින් ssh සේවාදායක ධාරක යතුර වෙනස් විය. වෙනසට හේතුව කුමක්ද? කියන්න අමාරුයි. මෙන්න අනුමාන කිහිපයක්:

  • Myserver හි sshd ECDSA යතුරු භාවිතා කිරීම ආරම්භ කළේද, එබැවින් එය නව යතුරු වර්ගයක්ද?
  • Myserver මෑතකදී නැවත ස්ථාපනය කර තිබේද?
  • Myserver හි sshd මෑතකදී නැවත ස්ථාපනය කර ඇති නිසා නව ssh ධාරක යතුරක් ජනනය වී තිබේද?
  • යමෙක් sshd ධාරක යතුර නැවත උත්පාදනය කළේද?
  • වෙනත් IP ධාරකයකු එම IP ලිපිනයට පිළිතුරු සපයන පරිදි myserver හි IP ලිපිනය වෙනස් වී තිබේද?

ප්‍රශ්නය: ... සහ මම එය නිවැරදි කරන්නේ කෙසේද?

අනෙක් අය දැනටමත් පිළිතුරු දී ඇති පරිදි, ඔබේ ගිණුම හැඹිලිගත කර ඇති myserver සඳහා හැඹිලි ECDSA ධාරක යතුර ඉවත් කරන්න.


2
හොඳ උපදෙස්, නමුත් ඇත්ත වශයෙන්ම ප්‍රශ්නයට පිළිතුරු සපයන්නේ නැත. ප්‍රශ්නයට පිළිතුරු දීමට උත්සාහ නොකරයි.
බෝට්කෝඩරය

1

මෙම දෝෂය දිගු කලක් තිස්සේ මට කරදරයක් විය. කිසියම් හේතුවක් නිසා එය මම කරන්නේද යන්න වෙනසක් ඇති කළේය

ssh host

හෝ

ssh host.domain

/ubuntu/87449/how-to-disable-strict-host-key-checking-in-ssh

වින්‍යාස ගොනුව වෙනස් කිරීමේ විකල්පය වෙත මා යොමු කළේය. ක්‍රියාවලිය ස්වයංක්‍රීය කිරීම සඳහා මගේ පිටපත https://askubuntu.com/a/949731/129227 බලන්න .


1
වින්යාස අගයන් භාවිතා CanonicalizeHostnameහා CanonicalDomainsදැඩි පරීක්ෂාවට ඉවත් වලකින සහ SSH ධාරක හා host.domain එම විය සලකා බවට පත් කෙරෙනු ඇත.
BlakBat

0

ආරක්‍ෂිත කවචය අස්ථාපනය කර නැවත ස්ථාපනය කිරීමෙන් මම මෙය Chromebook එකක සවි කළෙමි ... එය චාම් එකක් මෙන් ක්‍රියා කළේය.


මෙය අතිරික්තයකි. මගේ පිළිතුරේ සරල විසඳුමක් මෙතැනින් බලන්න.
ඇලෙක්ස් යුෂා

තවත් සමාන න්‍යෂ්ටික විකල්පයක් වන්නේ rm -f ~/.ssh/known_hostsලිනක්ස්
ටිනෝ

0

known_hostsChrome මෙහෙයුම් පද්ධතියක දන්නා ධාරක ඇඟිලි සලකුණු ( ගොනුවෙන්) ඉවත් කරන්නේ කෙසේද යන්න මෙන්න :

සම්බන්ධතාවය අසමත් වූ විට ssh ප්‍රතිදානයේ වරදකාරී ධාරක ප්‍රවේශයේ දර්ශකය සොයා ගන්න. නිදසුනක් ලෙස පහත දැක්වෙන පේළියේ වරදකාරී දර්ශකය 7 :

Offending ECDSA key in /.ssh/known_hosts:7

ආරක්ෂිත ෂෙල් කවුළුවේ ජාවාස්ක්‍රිප්ට් කොන්සෝලය ( CTRL+ Shift+ J) විවෘත කර පහත සඳහන් දේ ටයිප් කරන්න, INDEXසුදුසු අගය වෙනුවට (උදා. 7 ):

term_.command.removeKnownHostByIndex(INDEX);

මෙම විසඳුම ලියෝ ගග්ල්ගේ බ්ලොග් අඩවියෙන් ලබාගෙන ඇත .


0

මගේ පැත්තෙන් මෙය සිදුවන්නේ sshනව ( OpenSSH_7.9p1සහ ඉහළ) සේවාදායකයින්ගේ දෝෂයක් ලෙස මා සලකන දෙයක් නිසාය , එය වඩා ecdsaපැරණි සේවාදායක යතුරක් ඉගෙන ගැනීමට උත්සාහ කරන විට පැරණි rsaවර්ගයේ යතුරක් දැනටමත් දන්නා කරුණකි. එය පසුව මෙම නොමඟ යවන පණිවිඩය ඉදිරිපත් කරයි!

මේ සඳහා හොඳ විසඳුමක් මා නොදනිමි rsa, සේවාදායකයාට "නව වඩා ආරක්ෂිත ecdsaයතුරු" නැවත ඉගෙන ගත හැකි වන පරිදි "හොඳ නමුත් පැරණි යතුරු" ඉවත් කිරීම මට ඇති එකම විසඳුමයි . ඒ නිසා:

  1. පළමු පියවර වන්නේ හොඳ පැරණි RSA යතුරු ඉවත් කිරීමයි ( අවවාදයයි! මෙය MitM වෙතින් ආරක්ෂාව නැති කරයි ):

    $ sed -i '/ ssh-rsa /d' ~/.ssh/known_hosts
    
  2. දෙවන පියවර වන්නේ සියලුම ධාරක යතුරු නැවත ඉගෙනීමයි, එය නැවත එක් එක් IP සමඟ සම්බන්ධ කිරීමෙන් අතින් කළ යුතුය ssh.


මෙන්න මම නිරීක්ෂණය කරන දේ:

$ sftp test@136.243.197.100
Connected to test@136.243.197.100
sftp> 

$ sftp test@valentin.hilbig.de
Connected to test@valentin.hilbig.de.
sftp> 

දැන් දැනටමත් දන්නා මෙම හොඳ සේවාදායකයේ අලුතින් හඳුන්වා දුන් අන්වර්ථ නාමයකට සම්බන්ධ වීමට උත්සාහ කරන්න:

$ sftp test@gcopy.net
Warning: the ECDSA host key for 'gcopy.net' differs from the key for the IP address '136.243.197.100'
Offending key for IP in /home/test/.ssh/known_hosts:45
Matching host key in /home/test/.ssh/known_hosts:44
Are you sure you want to continue connecting (yes/no)? 

කරුණාකර IP ලිපිනය දෙස බලන්න. එය ඉහත IP ය! එබැවින් (දන්නා) IP හි (හොඳ) යතුර හදිසියේම අමනාප වී ඇති බව පෙනේ ( sshසේවාදායකයා නොගැලපෙන යතුරු දෙකක් මිශ්‍ර කරන බැවින් , පහත බලන්න).

දැන් අපි එය නිවැරදි කිරීමට උත්සාහ කරමු:

$ ssh-keygen -R 136.243.197.100
# Host 136.243.197.100 found: line 45
/home/test/.ssh/known_hosts updated.
Original contents retained as /home/test/.ssh/known_hosts.old

නැවත උත්සහ කරමු:

$ sftp test@gcopy.net
Warning: Permanently added the ECDSA host key for IP address '136.243.197.100' to the list of known hosts.
Connected to test@gcopy.net.

$ sftp test@valentin.hilbig.de
Warning: the RSA host key for 'valentin.hilbig.de' differs from the key for the IP address '136.243.197.100'
Offending key for IP in /home/test/.ssh/known_hosts:45
Matching host key in /home/test/.ssh/known_hosts:10
Are you sure you want to continue connecting (yes/no)? 

WTF? මෙහි සිදු වූ දේ? සේවාදායකයෙන් ඉගෙන ගත් නව නැවුම් යතුර නැවත අසමත් වේද? ගැටලුව පවා පැති මාරු කළාද?!?

නෑ, එය යතුර හෝ සේවාදායකය නොවේ. සියල්ල නිවැරදි ය!

එය තියෙන්නේ sshනිවැරදි ප්රධාන තහවුරු කිරීමට අසමත් වූ සේවාදායකයා! ප්රවේශය 45තුළ known_hostsදැන් වර්ගය ප්රධාන උසුලාගෙන ecdsa-sha2-nistp256, සේවාදායකයා විසින්, සේවාදායකය වෙතින් ඇද තිබූ යතුර, වර්ගයේ වන අතර rsa-sha2-512(සහ ඒ අනෙක් ප්රධාන නොගැලපේ හැක!).

$ sftp -v test@valentin.hilbig.de

පෙන්වයි:

debug1: kex: host key algorithm: rsa-sha2-512

අතර

$ sftp -v test@gcopy.net

පෙන්වයි:

debug1: kex: host key algorithm: ecdsa-sha2-nistp256

පෙනෙන විදිහට sshසේවාදායකයාට කොහේ හරි දෝෂයක් තිබේ! එක් ප්‍රභේදයකට වඩා පවතින ධාරක යතුර සමඟ එයට මුහුණ දිය නොහැක! නැතහොත් යතුරක යල් පැන ගිය ප්‍රභේදයක් ඉල්ලා සිටීම උගුලට වැටේ.

නිවැරදි කරන්නේ කෙසේද?

මට ඇත්තටම කිසිම අදහසක් නැහැ. මෙය බොහෝ විට සවි කළ හැක්කේ ඉහළට පමණි.

නමුත් අතින් නමුත් අවුල් සහගත ක්‍රියාමාර්ගයක් ඇත:

ඔබ පැරණි වර්ගයේ යතුරේ සියලුම අංශු අතින් ඉවත් කළ යුතුය rsa. ප්‍රශ්නයේ යතුර ප්‍රතිදානයේ පෙන්වා ඇත, නමුත් එය ගැටළුව ලෙස කෙලින්ම සලකුණු කර නැත:

Warning: the RSA host key for 'valentin.hilbig.de' differs from the key for the IP address '136.243.197.100'
Offending key for IP in /home/test/.ssh/known_hosts:45
Matching host key in /home/test/.ssh/known_hosts:10

චෙක් පත:

awk 'NR==45 { print $2 }' /home/test/.ssh/known_hosts
awk 'NR==10 { print $2 }' /home/test/.ssh/known_hosts

ලබා දෙයි

ecdsa-sha2-nistp256
ssh-rsa

එබැවින් මෙහි ගැලපෙන ධාරක යතුර වරදක් වන අතර වරද කළ යුතු යතුර නිවැරදිව තබා ගත යුතුය! එබැවින් වැරදි (ගැලපෙන) එකක් ඉවත් කරමු:

ssh-keygen -R valentin.hilbig.de
# Host valentin.hilbig.de found: line 10
/home/test/.ssh/known_hosts updated.
Original contents retained as /home/test/.ssh/known_hosts.old

දැන් නැවත පරීක්ෂා කරන්න:

$ sftp test@valentin.hilbig.de
The authenticity of host 'valentin.hilbig.de (136.243.197.100)' can't be established.
ECDSA key fingerprint is SHA256:tf7lwe10C2p1lK2UG9p//m/4sUBCpX+i9k5Ub63c6Os.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'valentin.hilbig.de' (ECDSA) to the list of known hosts.
Connected to test@valentin.hilbig.de.
sftp> 

$ sftp test@gcopy.net
Connected to test@gcopy.net.
sftp> 

sftp test@136.243.197.100
Connected to test@136.243.197.100.
sftp>

YAY! ගැටලුව අවසානයේ පහව ගියේය. නමුත් ඇතුළත් කිරීම් 100 ක් සමඟින් .ssh/known_hosts, මෙම “විසඳුම” සැබවින්ම ප්‍රධාන PITA බවට පත්වේ (සහ එල්ම් වීදියේ දෝෂ සහිත ආරක්ෂක නපුරු සිහිනයක්. YMMV.)

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.