“ධාරක යතුරු සත්‍යාපනය අසාර්ථකයි…” දෝෂය සමඟ SSH සම්බන්ධතා ගැටළුව


189

මට SSH හරහා මගේ LAN හි වෙනත් උබුන්ටු යන්ත්‍රයකට සම්බන්ධ විය හැකිය. එවකට පළාත් සභා දෙකෙහිම මම opensh-server ස්ථාපනය කර ඇති නමුත් වෙනත් උබුන්ටු පරිගණකයකින් මට SSH හරහා මගේ පරිගණකයට සම්බන්ධ විය නොහැකි අතර මට මෙම දෝෂය ඇතිවිය:

ධාරක යතුරු සත්‍යාපනය අසාර්ථකයි ...


1
ඔබ සත්කාරක නම් හෝ IP ලිපින භාවිතා කරනවාද?
තෝර්බ්ජර්න් රව්න් ඇන්ඩර්සන්

සමාන නොවන නමුත් මට එකම දෝෂයක් ඇති නමුත් වෙනත් ගැටළුවක් නිසා: serverfault.com/questions/494916/…
zengr

මෙය උබුන්ටු විශේෂිත ප්‍රශ්නයක් නොවේ. sshවිධාන රේඛාවෙන් ඕනෑම දෙයක් සමඟ සිදුවිය හැකිය.
මාර්ක්හු

Answers:


226

"ධාරක යතුරු සත්‍යාපනය අසාර්ථකයි" යන්නෙන් අදහස් කරන්නේ දුරස්ථ ධාරකයේ ධාරක යතුර වෙනස් කර ඇති බවයි.

SSH දුරස්ථ ධාරකයන්ගේ ධාරක යතුරු ගබඩා කරයි ~/.ssh/known_hosts. ඔබට එම පෙළ ගොනුව අතින් සංස්කරණය කර පැරණි යතුර ඉවත් කළ හැකිය (දෝෂ පණිවිඩයේ පේළි අංකය ඔබට දැකිය හැකිය), නැතහොත් භාවිතා කරන්න

ssh-keygen -R hostname

සිට man පිටුව :

-R ධාරක නාමය
දන්නා_හෝස්ට් ගොනුවකින් ධාරක නාමයට අයත් සියලුම යතුරු ඉවත් කරයි. හැෂ් ධාරකයන් මකා දැමීමට මෙම විකල්පය ප්‍රයෝජනවත් වේ.

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


6
දුරස්ථ ධාරකයේ ධාරක යතුර ඔබ සතුව නොමැති බව ද එයින් අදහස් විය හැකිය. උදාහරණයක් ලෙස, මම rm ~/.ssh/*නම් ssh -o BatchMode=yes root@somewhere, වෙන කිසිවක් වැරදියි Host key verification failed. නම්, ඔබ සැමවිටම අන්තර්ක්‍රියාකාරී නම් මට වැදගත් නොවනු ඇත , නමුත් එකම දෝෂයකට මුහුණ දෙන ස්ක්‍රිප්ට් සඳහා අදාළ වේ.
රොන් බර්ක්

පුදුමයට කරුණක් නම්, ssh-keygen -R example.net:7999අස්වැන්න Host example.net:7999 not found in known_hosts.
ඇලෙක්ස්

මම known_hostsගොනුව ඉවත් කර නැවතත් ssh. එය ක්‍රියාත්මක විය.
ParisaN

ගොනුව ~/.ssh/known_hostsකියවිය නොහැක
ජොආනෝ පිමෙන්ටල් ෆෙරෙයිරා

139

ඔබ සමහර දුරස්ථ / ස්ක්‍රිප්ටින් අවස්ථාවන්හි ධාවනය කරන්නේ නම්, ඔබට ඇම්ප්-හොස්ට්කි වෙත අන්තර්ක්‍රියාකාරී ප්‍රවේශයක් නොමැති නම්, මේ ආකාරයට වැඩ කරන්න:

$ ssh -o StrictHostKeyChecking=no user@something.example.com uptime

අවවාදයයි: දන්නා ධාරක ලැයිස්තුවට 'something.example.com, 10.11.12.13' (RSA) ස්ථිරවම එකතු කරන ලදි.


6
+1, මෙය අවලස්සන විසඳුමකි, නමුත් සමහර අවස්ථාවලදී ඩයිමයික් අයිපී සම්බන්ධිත උපාංග සමඟ ක්‍රියා කරන ස්වයංක්‍රීය අධීක්ෂණ ක්‍රියාවලීන්හි මෙය සරල හා පිළිගත හැකි විසඳුමකි.
Ninsuo

12
+1 උදාහරණයක් ලෙස, ජෙන්කින්ස් utions ාතන සඳහා මෙය හොඳ විසඳුමකි. ස්තූතියි
ලොබෝ

5
O ලොබෝට තවත් එකඟ විය නොහැක, මම එය ජෙන්කින්ස් සඳහා භාවිතා කරමි, එය සිසිල් යsh """ssh -o StrictHostKeyChecking=No ec2-user@someIpAddress-e2e sudo service tomcat restart"""
යාචකප්ඩ්

මගේ ජීවිතය බේරුවා. ජීවිතාරක්ෂක විසඳුම.
user1735921

10

සමහර විට ඔබ අනුක්‍රමික කොන්සෝලයෙහි වැඩ කරන විට යම් තත්වයක් ඇති අතර, ඉහත විධානය වාචික ප්‍රකාරයේදී පරීක්ෂා කිරීමෙන් -vඔබට /dev/ttyනොපවතින බව පෙනේ.

ssh -v user@hostname

ඉහත නඩුව පමණක් ඉවත් /dev/ttyක symlink සහ නිර්මාණය /dev/ttyS0කිරීමට /dev/tty.

rm /dev/tty
ln -s /dev/ttyS0 /dev/tty

විකල්පයක් ලෙස, id_rsa.pubදුරස්ථ ස්ථානයට එක් කරන්න , එබැවින් මුරපදය විමසනු නොලබන අතර ඔබට පිවිසුම් ප්‍රවේශය ලැබේ.


6
-V පරාමිතිය භාවිතා කිරීමට උපදෙස් දීම සඳහා +1; ssh ගැටළු නිරාකරණය කිරීමේදී මෙය බොහෝ සෙයින් උපකාරී වේ.
ඩැනියෙල් කුල්මන්

8

මගේ නඩුවේදී, මෙය udev ගැටළුවක් නිසා ඇති විය - /dev/ttyඋපාංග නෝඩයක් නොතිබුණි . මට විසඳුම වූයේ:

sudo mknod -m 666 /dev/tty c 5 0

6

පර්යන්තයේ:

ssh -o StrictHostKeyChecking=no -i YourPublicKey.pem user@example.com uptime

පහත පණිවිඩය, හෝ ඊට සමාන, දිස්වනු ඇත:

Warning: Permanently added 'example.com, XX.XXX.XXX.XX' (ECDSA) to the list of known hosts.
 00:47:37 up 3 min,  0 users,  load average: 0.00, 0.00, 0.00

ඉන්පසු, ඔබේ EC2 වෙත සාමාන්‍ය පරිදි සම්බන්ධ වන්න:

ssh -i YourPublickey.pem user@example.com

මට ලැබුනේ command-line line 0: Bad yes/no/ask argument.ඔබ තර්කයක් ලෙස 'නැත' වෙනුවට 'නැත' වැරදි ලෙස භාවිතා කරන නිසායStrictHostKeyChecking
ඇක්සෙල් බ්‍රෙග්න්ස්බෝ

3

හොඳයි, එයට හේතුව දෙවන උබුන්ටු සඳහා යතුරෙන් සම්බන්ධතාවය අවශ්‍ය වන අතර මුරපදය නොවේ.

sudo dpkg-reconfigure openssh-serverඔබේ පරිගණකයේ භාවිතා කිරීමට මම යෝජනා කරමි , පසුව එය නිසියාකාරව ක්‍රියාත්මක විය යුතුය. එය opensh සඳහා වින්‍යාසය නැවත සකසනු ඇති අතර පෙරනිමි මුරපද සත්‍යාපනය වෙත පැමිණිය යුතුය.

දෙවන හැකියාව නම්, ඔබේ පරිගණකයේ ඔබේ වෙනත් උබුන්ටු සඳහා දැනටමත් යතුරක් තිබීම සහ එය වෙනස් වීම නිසා තවදුරටත් හඳුනා නොගැනීමයි. මෙම අවස්ථාවේදී, .ssh/authorized_keysඔබේ උබුන්ටු හඳුනා ගැනීමේ ගැටළු සහගත රේඛාව ඉවත් කිරීමට ඔබට ගොනුව සංස්කරණය කිරීමට සිදුවේ.


3

මෙය පැරණි නූලක් වන අතර මම මෙම පිළිතුර හරහා දිව ගියෙමි, මෙය විසඳීමට මා කළ දේ එකතු කරමි.

ssh-keygen -f "/home/USER/.ssh/known_hosts" -R HOSTNAME

මම එය වෙතට විසි කළ දෝෂ පණිවිඩය දෙස බැලූ අතර එය ධාරක ලැයිස්තුවෙන් ඉවත් කිරීම සඳහා එම විධානය ක්‍රියාත්මක කරන ලෙස පැවසුවා. ඊට පස්සේ මම පහත සඳහන් දේ කළා:

ssh-copy-id HOSTNAME

සේවාදායකයට මාරුවීමට හැකි වන තෙක් මම එතැන් සිට කළ ඉල්ලීම් අනුගමනය කළාට වඩා.


මෙම විධානය ලෙස මම උබුන්ටු 12.4 හි යෝජනාවක් ලෙස ලබා ගනිමි.
MaNKuR

2

එයින් අදහස් වන්නේ ඔබගේ දුරස්ථ ධාරක යතුර වෙනස් කර ඇති බවයි (ධාරක මුරපද වෙනස් කිරීම විය හැකිය),

ඔබේ ටර්මිනලය මෙම විධානය root පරිශීලකයෙකු ලෙස ක්‍රියාත්මක කිරීමට යෝජනා කළේය

$ ssh-keygen -f "/root/.ssh/known_hosts" -R [www.website.net]:4231

ඔබේ පරිගණකයේ / සේවාදායකයේ ධාරක ලැයිස්තුවෙන් එම සත්කාරක නාමය ඉවත් කළ යුතුය. යෝජිත විධානය පිටපත් කර root පරිශීලකයෙකු ලෙස ක්‍රියාත්මක කරන්න.

$ sudo su                                                            // Login as a root user

$ ssh-keygen -f "/root/.ssh/known_hosts" -R [www.website.net]:4231   // Terminal suggested command execute here
Host [www.website.net]:4231 found: line 16 type ECDSA
/root/.ssh/known_hosts updated.
Original contents retained as /root/.ssh/known_hosts.old

$ exit                                                               // Exist from root user

$ sudo ssh root@www.website.net -p 4231                              // Try again

මෙය ක්‍රියාත්මක වේ යැයි සිතමි.


2

ඔබට දිගටම සම්බන්ධ වීමට අවශ්‍ය බව ssh විසින් සනාථ කරන විට ඔබට "ඔව්" ඇතුළත් කිරීමට අවශ්‍ය විය හැකිය.

බෙල්ල වගේ.

The authenticity of host 'xxx' can't be established.
ECDSA key fingerprint is yyy.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'xxx' (ECDSA) to the list of known hosts.
Enter passphrase for key '/Users/ysy/.ssh/id_rsa':

ඉන්පසු ඔබගේ මුරපදය ඇතුළත් කරන්න.

කරුණාකර අවධානය යොමු කරන්න "ඔබට දිගටම සම්බන්ධ වීමට අවශ්‍ය බව ඔබට විශ්වාසද (ඔව් / නැත)? ඔව් ". ඔබ ඔව් ඇතුලත් කළ යුතුය, ඇතුල් නොවන්න.


1

ඔබ ඔබේ යතුර මේ ආකාරයෙන් වෙනස් කළ යුතුය: ඔබ ලබා දී ඇති දෝෂයෙන් උදාහරණයක් ලෙස කුමන සත්කාරක යතුර වෙනස් වී ඇත්දැයි සොයා ගන්න: /Users/user-name/.ssh/known_hosts:5 හි ECDSA යතුර ලබා දීම 5 වන යතුර වෙනස් වී ඇති බැවින් මෙය කරන්න:

sed -i '5d' ~/.ssh/known_hosts

සටහන: ඔබ root විය යුතුය හෝ sudo සඳහා වරප්‍රසාද තිබිය යුතුය.


නැත, ඔබ එය වෙනත් කෙනෙකු වෙනුවෙන් කරන්නේ නම් මිස, එයට root හෝ sudo අවශ්‍ය නොවේ. ඔබ ඔබගේ නිවාස නාමාවලියෙහි ගොනුව සංස්කරණය කරමින් සිටී. දෙවනුව: විධානය ක්‍රියාත්මක වීමට නම් GNU sed අවශ්‍ය වේ.
ටෙක්රාෆ්

සමහර විට ඔබ නිවැරදියි නමුත් මම මැක් ඕඑස්එක්ස් සිට උබුන්ටු සේවාදායකය දක්වා මාරු කිරීමට උත්සාහ කළ අතර මට එය කළ යුතුය. ඔබගේ අදහස් දැක්වීමට ස්තූතියි.
අමීර්.ඒ.ජී

1

ඔබ /home/user/.ssh/known_hostsඉලක්කය මත ධාවනය කිරීමෙන් ඉලක්ක ධාරකයේ rsa යතුර ප්‍රභව ධාරකයට දැමිය යුතුය

ssh-keyscan -t rsa @targethost

1

ධාරක යතුරු පරීක්ෂා කිරීම අක්‍රීය කිරීමට අමතරව, ඔබට ටයිප් කිරීමෙන් සම්බන්ධ විය හැකිය:

ssh -o LogLevel=quiet -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no <username@target_machine_ip_or_domain_name>

1

"Sudo vi /var/root/.ssh/known_hosts" කර පේළිය ඉවත් කරන්න, එය ඔබ සම්බන්ධ වීමට උත්සාහ කරන ධාරකයකු සඳහා යතුරක් තබා නැවත සම්බන්ධ කිරීමට උත්සාහ කරන්න.

ඔබගේ විශේෂිත තත්වය ගැන මම නොදනිමි, නමුත් බොහෝ විට මෙම දෝෂය මෙවැනි පණිවිඩයක් සමඟ පැමිණියේය:

my_mac:~ oivanche$ sudo ssh pi@192.168.0.45
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    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 a host key has just been changed.
The fingerprint for the ECDSA key sent by the remote host is
SHA256:sx1Z4xyGY9venBP6dIHAoBj0VhDOo7TUVCE2xWXpzQk.
Please contact your system administrator.
Add correct host key in /var/root/.ssh/known_hosts to get rid of this message.
Offending ECDSA key in /var/root/.ssh/known_hosts:74
ECDSA host key for 192.168.0.45 has changed and you have requested strict checking.
Host key verification failed.

ඔබ ලොගය වඩාත් පරිස්සමින් කියවන්නේ නම්, ඔබට දැනටමත් ඇති යතුරක් සමඟ ඔබ ධාරකයකුගෙන් ලබාගත් යතුර ගැටෙන බව ඔබට පෙනෙනු ඇත - මේ අවස්ථාවේ දී එය දන්නා_හෝස්ට් ගොනුවේ 74 වන පේළියේ ඇත (ECDSA යතුර / var / root / .ssh / known_hosts: 74). දන්නා_ හොස්ට් වලින් රේඛාව ඉවත් කරන්න, වෙනස්කම් සුරකින්න සහ නැවත සම්බන්ධ කරන්න.


මෙය මට උදව් විය - ස්තූතියි
කරන් දේශායි

0

pico ~/.ssh/known_hosts නැවත සම්බන්ධ කිරීමෙන් පසුව ඔබට නව යතුරක් ලැබෙනු ඇත.


6
මෙය භයානක විසඳුමකි, මන්ද ඔබ ඔබේ ධාරක යතුරු සියල්ල ඉවත් කරනු ඇත. පිළිගත් විසඳුම ssh-keygen -R hostnameවඩා හොඳය.
msanford

0

මගේ විසඳුම මෙම බ්ලොග් සටහනෙන් පැමිණේ: SSH ආරක්ෂිත ෂෙල් සේවාදායකයා සඳහා ඇල්ගොරිතම සාකච්ඡා අසාර්ථක විය

ගොනුව පහත පරිදි වෙනස් කිරීමට ඔබට අවශ්‍යය:

sudo nano /etc/ssh/sshd_config

ඉන්පසු පහත සඳහන් දෑ එකතු කරන්න:

# Ciphers
Ciphers aes128-cbc,aes192-cbc,aes256-cbc,blowfish-cbc,arcfour
KexAlgorithms diffie-hellman-group1-sha1

ඔබේ ගැටලුව විසඳිය හැකි එකක් සොයා ගන්නා තෙක් මූලික වශයෙන් ඔබ විවිධ විසඳුම් උත්සාහ කළා. ඉහත විසඳුම් ක්‍රියාත්මක නොවන්නේ නම් කරුණාකර මෙය උත්සාහ කරන්න. මෙයද ක්‍රියාත්මක නොවන්නේ නම්, කරුණාකර අනෙක් අය උත්සාහ කරන්න.


0

ඔබ -vssh සඳහා විකල්පය එකතු කළහොත් (සමහර විට එක් වරකට වඩා) එය ගැටළුව හඳුනා ගැනීමට උපකාරී වන සියලු ආකාරයේ දෑ මුද්‍රණය කරයි. මගේ නඩුවේදී එය /dev/ttyඅවසරයන් ගැන පැමිණිලි කළ chmod 666 /dev/ttyඅතර ගැටළුව විසඳීය.


-1
chmod 666 /dev/tty 

තවත් tty විසඳුමක් - සමහර විට, මෙම උපාංග ගොනුවට වැරදි අවසර ඇත.

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.