SSH හි දන්නා_හෝස්ට් ගොනුවෙන් විශේෂිත ධාරක යතුරක් ඉවත් කළ හැකිද?


330

SSH හි දන්නා_හෝස්ට් ගොනුවෙන් විශේෂිත ධාරක යතුරක් ඉවත් කළ හැකිද?

මම සාමාන්‍යයෙන් සම්පූර්ණ known_hostsගොනුව මකා දැමීම අවසන් කරමි , එය කිරීමට මට කිසිදු ගැටළුවක් නැත, නමුත් කුතුහලයෙන් යුතුව, එක් ප්‍රවේශයක් පමණක් ඉවත් කළ හැකිද?

මම known_hostsගොනුව විවෘත කළෙමි , නමුත් එහි අන්තර්ගතය තේරුම් ගැනීමට මම වෙහෙසෙමි.

පහත දැක්වෙන්නේ මා මුහුණ දුන් පණිවිඩය, මෙම ප්‍රශ්නය ඇසීමට මා යොමු කළ:

Add correct host key in /home/wissen16/.ssh/known_hosts to get rid of this message.
Offending key in /home/wissen16/.ssh/known_hosts:1
RSA host key for foo.com has changed and you have requested strict checking.
Host key verification failed.

Answers:


543

දන්නා_ හොස්ට් වලින් ඇතුළත් කිරීම් ඉවත් කිරීමට මෙම විධානය භාවිතා කරන්න:

ssh-keygen -R hostname

22
එය IP ලිපිනයක් සමඟද ක්‍රියා කරයි. උදාහරණයක් ලෙස, මගේ වෙබ් සේවාදායකය සඳහා මට DNS ධාරක කෙටිමඟක් ඇත. අභිරුචි ධාරක නාමය සහ අයිපී ලිපිනය සඳහා යතුරු අතර ඇති වූ ගැටුමක් ඉවත් කිරීම සඳහා, ඒ දෙක සඳහාම ඇතුළත් කිරීම් ඉවත් කිරීමට මට සිදු විය.ඉතින් ssh-keygen -R xxx.xxx.xxx.xxx.
StrangeElement

@StrangeElement පවසන පරිදි, සමහර විට ඔබ සත්කාරක නාමයට අමතරව IP ධාරකයද ඉවත් කළ යුතුය.
ගොන්සාලෝ කාවෝ

5
ප්ලස්, එය ස්වයංක්‍රීයව උපස්ථයක් තබා ගනී (මගේ ඔක්ස් යන්ත්‍රයේ : Original contents retained as /Users/nha/.ssh/known_hosts.old, එය උබුන්ටු සඳහා සමාන යැයි උපකල්පනය කරයි).
nha

20
ප්ලස්, ඔබ සම්මත නොවන ssh වරාය භාවිතා කරන්නේ නම්, මෙම ආකෘතිය භාවිතා කරන්නssh-keygen -R [ssh.sssshh.com]:1234
Shiji.J

1
මෙම ප්‍රශ්නයට හොඳම පිළිතුර. චමත්කාරයක් මෙන් ක්‍රියා කරයි
bademba

33

ඔව්, ඔබට එක් යතුරක් පමණක් ඉවත් කළ හැකිය. එය සංස්කාරකයකින් විවෘත කර වැරදි රේඛාව මකන්න. දෝෂ පණිවිඩයේ මහා බඩවැලට පසුව ඇති අංකය රේඛා අංකය වේ, එබැවින් එය මකා දැමීමේ රේඛාවයි - ඔබේ උදාහරණයේ 1 වන පේළිය ..


1
එය රේඛා අංකය හඳුනාගෙන ඇති බව මා දැන සිටියේ නැත, එය ඇදහිය නොහැකි තරම් ප්‍රයෝජනවත් වේ.
ඩෙල්ට්‍රි

19

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

එම දෝෂය මත පදනම්ව, සහ මෙතෙක් කුමක් දැයි නොදැන, එය ගොනුවේ පළමු සත්කාරක යතුර විය හැකි අතර එමඟින් ගැටලුව වන්නේ ගොනුව vim සමඟ විවෘත කරන්න

vim ~/.ssh/known_hosts

සහ පහර

dd

ඉන්පසු එය සුරකින්න.


ඔබට භාවිතා කළ හැකිය: රේඛා අංක පෙන්වීම සඳහා nu in vim ලෙස සකසන්න. කෙසේ වෙතත් තක්කට් පිළිතුර හොඳම ය.
ජේවියර් රිවේරා

ඔබට එය කළ හැකි බව මම නොදනිමි. මම අනාගතයේදී එය භාවිතා කිරීමට යනවා. රේඛා අංක සැකසීම් විමසා බැලීම සඳහා මම අර්ථය තබා ගතිමි. ස්තූතියි.
Buddy Lindsey

3

Ssh-keygen -R ධාරක නාමය භාවිතා කිරීම සැමවිටම ක්‍රියාත්මක නොවේ. ඔබ සතුව SSH හි නවතම අනුවාදයක් තිබේ නම් එය ssh-agent පැහැර ගැනීම වැළැක්වීම සඳහා ධාරක නාම "සඟවා" තිබේ නම්, පෙනෙන විදිහට ssh-keygen හට ධාරක නාමය ඉවත් කිරීමට නොහැකි වේ.

උදාහරණයක් ලෙස, මට build-node-01 නමින් ධාරකයක් ඇති අතර මම එයට සම්බන්ධ කර යතුර පිළිගෙන ඇත. මම මුල සිටම එය නැවත ගොඩනඟා, නව ධාරක ඇඟිලි සලකුණක් ලබාගෙන නැවත සම්බන්ධ කිරීමට උත්සාහ කරමි, X පේළියේ ගැටුමක් ඇති බවට මට අනතුරු ඇඟවීමක් ලැබෙනු ඇත (3 කියන්න). මම දුවනවා ssh-keygen -R hostname, නමුත් ඊළඟ වතාවේ මම සම්බන්ධ වීමට උත්සාහ කරන විට ගැටුමක් ඇති බවට මට තවමත් අනතුරු ඇඟවීමක් ලැබෙනවා. මම ගොනුව පරීක්ෂා කළේ ධාරක නාමය හැෂ් කර ඇති [1] Bu4Ch@R@4D0M57uFFබවත් එය කියවිය හැකි ධාරක නාමයක් වෙනුවට පෙන්වන බවත්ය.

මෙම අවස්ථාවෙහිදී, වරදකාරී ධාරකය සාර්ථකව ඉවත් කිරීමට ඇති එකම ක්‍රමය භාවිතා කිරීමයි

sed -i 'xd' ~/.ssh/known_hosts

මෙම පියවර තවත් පියවරක් ඉදිරියට තැබීම සඳහා, ඔබ වැරදි රේඛාව මකා දැමුවහොත් දන්නා_ හොස්ට් වල උපස්ථයක් සෑදීමට ඔබට අවශ්‍ය විය හැකිය, මේ අවස්ථාවේ දී -i විකල්පයට .bak (හෝ ඕනෑම දිගුවක්) එක් කරන්න. දිගුව. Ssh-keygen භාවිතා කිරීම මෙය ස්වයංක්‍රීයව කරයි.

sed -i.bak 'xd' ~/.ssh/known_hosts

6
මෙය නිවැරදි නොවේ. ssh-keygen -R {hostname}ධාරක නාම 'සැඟවුණු' (හැෂ්) කළත් ක්‍රියා කරයි. තවමත්, ඔව්, කෙනෙකුට අංකය අනුව ප්‍රවේශය මකා දැමිය හැකිය (උදා: 10 වන ප්‍රවේශය හරහා sed -i.bak 10d ~/.ssh/known_hosts), නමුත් එය සාමාන්‍යයෙන් අවශ්‍ය නොවේ. සම්මත නොවන වරායක් භාවිතා කිරීම විය හැකිය, එවැනි අවස්ථාවකදී ඔබට විධානය (සටහන් උපුටා දැක්වීම්) ලෙස සංයුති කිරීමට සිදු විය හැකිය:ssh-keygen -R '[hostname]:2222'
මයිකල්

Icmichael_n ගැන දැන ගැනීම සතුටක්, එය සම්මත නොවන වරායක් විය හැකි අතර එය ප්‍රවේශය ඉවත් කිරීමේ මගේ හැකියාවට බලපායි. ඔබ සත්කාරකයකු සඳහා ඇඟිලි සලකුණු කිහිපයක් පිළිගෙන තිබේ නම්, එය සියලු ඇතුළත් කිරීම් එකවරම ඉවත් කරයිද, නැතහොත් එකවර එකක් පමණක් දැයි මට විශ්වාස නැත.
dragon788

1

මට හමු වූ තවත් පිරිසිදු හා පහසු පිළිතුරක් බෙදා ගැනීමට. දන්නා_හෝස්ට් ගොනුව හෑෂ් කර ඇති බැවින් ධාරක නාමය ඉවත් කිරීම මට කළ නොහැක. කෙසේ වෙතත්, දෝෂ පණිවිඩයේ ඇති පේළි අංකය මත පදනම්ව මම ධාරක ප්‍රවේශය අතින් සංස්කරණය කළ හැකිය. මයික් ස්කොට් කලින් සඳහන් කළ පරිදි, වැරදිසහගත සත්කාරක නාම රේඛා අංකය දෝෂ පණිවිඩයේ ඇත.

නැත්නම්, මට මෙය කළ හැකිය. මෙතැන් සිට: ssh known_hosts ගොනුවේ වැරදි යතුර නිවැරදි කරන්නේ කෙසේද

මට මේ මැජික් ටිකක් ලැබුණා

sed -i 'xd' ~/.ssh/known_hosts

X රේඛා අංකය හා voila සමඟ ආදේශ කරන්න. ඔහු වැඩ කරන්නේ නැතිනම් ඔහු පර්ල් පිළිතුරක් ද ලබා දෙයි.


0
sed '/10\.20\.120\.211/d' ~/.ssh/known_hosts > temp && mv temp ~/.ssh/known_hosts

මෙම අවස්ථාවෙහිදී, 10.20.120.211 යනු මා දන්නා_හෝස්ට් ගොනුවෙන් මකා දැමීමට අවශ්‍ය ධාරකයයි, (.) වැනි විශේෂ අක්ෂර වලින් ඔබ ගැලවීමට වග බලා ගන්න.


IP ලිපින සහ ධාරක නාම තවදුරටත් දන්නා ධාරක ගොනුවේ වාචික (පැහැදිලි පා text ය) ගබඩා නොකෙරේ, එබැවින් මෙය ක්‍රියා නොකරනු ඇත. යමෙක් භාවිතා කළ යුතුය ssh-keygen -R ...(වඩාත් සුදුසු); හෝ, sedමකා දැමීමට නිශ්චිත රේඛා අංකය සමඟ. එසේම, කිරීමට sedඇති ස්ථානයක්, භාවිතා -i' option; e.g., -i.bak 10D ~ / .ssh / known_hosts` 10 මාර්ගය මැකීමට sed, සහ (අත්යවශ්ය නොවේ) විසින් භා තා රක්ෂිත ගොනුවේ මුල් තබා .bak.
මයිකල්

0

යාවත්කාලීන කිරීමෙන් ඔබට විශේෂිත ධාරකය ඉවත් කිරීමෙන් වළක්වා ගත හැකිය:

ssh-keyscan -t ecdsa hostname >> ~/.ssh/known_hosts

මේ ආකාරයෙන් ඔබට නැවත සත්කාරකයට සම්බන්ධ වීමට අවශ්‍ය නැත.

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.