දන්නා_ හොස්ට් වලට මට නව ධාරකයක් ස්වයංක්‍රීයව එක් කළ හැකිද?


266

මෙන්න මගේ තත්වය: මම පරීක්ෂණ පටි සකස් කරමි, එය මධ්‍යම සේවාදායකයකුගෙන් අථත්‍ය යන්ත්‍ර අවස්ථා ගණනාවක් දියත් කර ඒවා හරහා විධාන ක්‍රියාත්මක කරනු ඇත ssh. අථත්ය යාන්ත්රණවල මීට පෙර භාවිතා නොකළ සත්කාරක නාම සහ IP ලිපින ඇත, එබැවින් ඒවා ~/.ssh/known_hostsමධ්යම සේවාදායකයාගේ ගොනුවේ නොමැත.

මට ඇති ගැටළුව sshනම් නව අථත්‍ය අවස්ථාවකට එරෙහිව ධාවනය වන පළමු විධානය සෑම විටම අන්තර්ක්‍රියාකාරී විමසුමක් සමඟ පැමිණීමයි:

The authenticity of host '[hostname] ([IP address])' can't be established.
RSA key fingerprint is [key fingerprint].
Are you sure you want to continue connecting (yes/no)?

මට මෙය මඟ හැර නව ධාරකය දැනටමත් ග්‍රාහක යන්ත්‍රයට දැන ගත හැකි ක්‍රමයක් තිබේද, සමහර විට අථත්‍ය යන්ත්‍ර රූපයට දැනටමත් පිළිස්සූ පොදු යතුරක් භාවිතා කිරීමෙන්? මට හැකි නම් අන්තර්ක්‍රියාකාරී විමසුමට පිළිතුරු දීමට අපේක්ෂාව හෝ වෙනත් දෙයක් භාවිතා කිරීමෙන් වැළකී සිටීමට මම ඇත්තෙන්ම කැමතියි.


5
ස්වයං අන්තර්ගත සහ භෞතික වශයෙන් ආරක්ෂිත පරීක්ෂණ පරිසරයක් සඳහා, ස්වයංක්‍රීය යතුරු පිළිගැනීම හොඳින් ක්‍රියාත්මක විය හැකිය. නිෂ්පාදන පරිසරයක හෝ විශ්වාසනීය නොවන ජාලයක් හරහා (අන්තර්ජාලය වැනි) පොදු යතුරු ස්වයංක්‍රීයව පිළිගැනීම, SSH විසින් වෙනත් ආකාරයකින් දැරිය හැකි මැදිවියේ ප්‍රහාරයන්ට එරෙහිව ඇති ආරක්ෂාව සම්පූර්ණයෙන්ම මග හරිනු ඇත. MITM ප්‍රහාර වලින් ඔබ ආරක්‍ෂිත බව තහවුරු කර ගැනීමට ඇති එකම වලංගු ක්‍රමය නම්, පිටත සිටින විශ්වාසදායක නාලිකාවක් හරහා සත්කාරකයේ පොදු යතුර සත්‍යාපනය කිරීමයි. තරමක් සංකීර්ණ යතුරු අත්සන් කිරීමේ යටිතල ව්‍යුහයක් සැකසීමකින් තොරව එය ස්වයංක්‍රීය කිරීමට ආරක්ෂිත ක්‍රමයක් නොමැත.
ඊල්

Answers:


158

සකසන්න StrictHostKeyCheckingවිකල්පය වෙත noමෙම config ගොනුවේ හරහා හෝ එක්කෝ, -o:

ssh -o StrictHostKeyChecking=no username@hostname.com


70
මෙය ඔබව මැද ප්‍රහාර වලදී මිනිසාට විවෘත කරයි, බොහෝ විට හොඳ අදහසක් නොවේ.
ජැස්පර් වොලස්

10
As ජැස්පර් වොලස්, මෙය සාමාන්‍යයෙන් හොඳ උපදෙසක් වන අතර, විශේෂිත භාවිත අවස්ථාව (පරීක්ෂණ වීඑම් යන්ත්‍ර යෙදවීම සහ ඒවාට විධාන යැවීම) ප්‍රමාණවත් තරම් ආරක්ෂිත විය යුතුය.
මැසිමෝ

8
මෙය Warning: Permanently added 'hostname,1.2.3.4' (RSA) to the list of known hosts.අනතුරු ඇඟවීම වළක්වා ගැනීමට සහ දන්නා_හෝස්ට් ගොනුවකට ඇතුල් වීම වළක්වා ගැනීම සඳහා මම මෙසේ කරමි:ssh -o StrictHostKeyChecking=no -o LogLevel=ERROR -o UserKnownHostsFile=/dev/null username@hostname.com
පීටර් වී. මාර්ච්

11
පහත හෙලීම ප්‍රශ්නයට පිළිතුරු නොදෙන අතර බරපතල ආරක්ෂක අවදානමකට විවෘත වේ.
marcv81

13
NeMnebuerquo: ඔබ ආරක්ෂාව ගැන කනස්සල්ලට පත්ව සිටියා නම් ඔබට මෙම ප්‍රශ්නය සමඟ කිසිසේත් සම්බන්ධ නොවනු ඇත. ඔබට නිවැරදි ධාරක යතුර ඔබ ඉදිරිපිට ඇති අතර, ඔබට සම්බන්ධ වීමට අවශ්‍ය පද්ධතියේ කොන්සෝලය වෙතින් එකතු වී ඇති අතර, පළමුව සම්බන්ධ වූ පසු ඔබ එය අතින් සත්‍යාපනය කරනු ඇත. ඔබ නිසැකවම "ස්වයංක්‍රීයව" කිසිවක් නොකරනු ඇත.
ඉග්නේෂියෝ වාස්කෙස්-ඒබ්‍රම්ස්

237

IMO, මෙය කිරීමට හොඳම ක්‍රමය පහත දැක්වේ:

ssh-keygen -R [hostname]
ssh-keygen -R [ip_address]
ssh-keygen -R [hostname],[ip_address]
ssh-keyscan -H [hostname],[ip_address] >> ~/.ssh/known_hosts
ssh-keyscan -H [ip_address] >> ~/.ssh/known_hosts
ssh-keyscan -H [hostname] >> ~/.ssh/known_hosts

එමඟින් අනුපිටපත් නොමැති බව සහතික කරනු ඇත, ඔබ සත්කාරක නාමය සහ IP ලිපිනය යන දෙකටම ආවරණය වන අතර අතිරේක ආරක්ෂක පියවරක් වන ප්‍රතිදානය ද හෑෂ් කරනු ඇත.


4
ඔබට ssh-keycan 3 ම අවශ්‍ය වන්නේ ඇයි? ධාරක නාමය සහ අයිපී යන දෙකටම වැඩ කරන බැවින් ඔබට පළමු එක සමඟ සම්බන්ධ විය නොහැකිද?
රොබට්

8
Ssh-keycan ඉල්ලීමට පිළිතුරු සපයන යන්ත්‍රය ඇත්ත වශයෙන්ම ඔබට කථා කිරීමට අවශ්‍ය එක බව ඔබට සහතික විය හැකිද? එසේ නොවේ නම් ඔබ මැද ප්‍රහාරයේ යෙදී සිටින මිනිසෙකුට විවෘත වී ඇත.
ජැස්පර් වොලස්

2
As ජැස්පර් වොලස් ඔව්, ඒ සඳහා ඔබට අවම වශයෙන් ඇඟිලි සලකුණු හෝ ඊටත් වඩා හොඳ පොදු යතුරක් අවශ්‍ය වේ, එවැනි අවස්ථාවකදී ඔබට එය කෙලින්ම දන්නා_ හොස්ට් වලට එකතු කළ හැකිය. ඔබ සතුව ඇත්තේ ඇඟිලි සලකුණක් නම්, බාගත කළ පොදු යතුර ඔබගේ ඇඟිලි සලකුණු සමඟ සත්‍යාපනය කරන අමතර පියවරක් ලිවීමට ඔබට

1
ssh-keyscanමගේ ඉලක්ක සත්කාරක සමාගම සුපුරුදු අනුවාදය 1 යතුරු වර්ගයට සහය නොදක්වන නිසා මා සඳහා වූ ඇමතුම් අසාර්ථක විය. -t rsa,dsaවිධානයට එකතු කිරීමෙන් මෙය නිවැරදි විය.
phasetwenty

5
මෙය බොහෝ විට නරක අදහසකි. මෙම යතුරු යාවත්කාලීන කිරීමෙන් ඔබ මැදිවියේ ප්‍රහාරයකට විවෘත වේ. අනුපිටපත් වලක්වා ගැනීම සඳහා, ssh-keygen -F [address]ඒ වෙනුවට ආපසු පැමිණීමේ තත්වය පරීක්ෂා කරන්න . medium.com/@wblankenship/…
retrohacker

100

කම්මැලි අය සඳහා:

ssh-keyscan -H <host> >> ~/.ssh/known_hosts

-H ධාරක නාමය / IP ලිපිනය හෑෂ් කරයි


2
"ssh-keycan -H <host> >> ~ / .ssh / known_hosts" පරිශීලක අන්තර්ක්‍රියාකාරිත්වය සමඟ ssh කරන දේට සමාන ප්‍රවේශයක් නිපදවයි. (-H දුරස්ථ ධාරකයේ නම හෑෂ් කරයි.)
සාරා මෙසර්

3
MITM ප්‍රහාරයන්ට ගොදුරු විය හැකිය. ඔබ යතුරු ඇඟිලි සලකුණු පරීක්ෂා කරන්නේ නැත.
Mnebuerquo

9
NeMnebuerquo ඔබ කළ යුත්තේ කුමක් කළ යුතුද යන්න නොව එය ප්‍රයෝජනවත් වන්නේ කෙසේද යන්නයි.
රේ

6
@ ජේම්ස්ෂ්ෆිෂර් ඔව් එය එම්අයිටීඑම් ප්‍රහාරයන්ට ගොදුරු විය හැකි නමුත් ඔබ මෙය අතින් කරන විට ඇත්ත වශයෙන්ම සේවාදායකයේ එක් එකක් සමඟ ඔබට පෙන්වූ ආර්එස්ඒ ඇඟිලි සලකුණ සංසන්දනය කර තිබේද? නොමැත? එබැවින් මෙම පිළිතුර ඔබ වෙනුවෙන් එය කළ හැකි ක්‍රමයයි. ඔව් නම්, ඔබ මේ පිළිතුර භාවිතා නොකළ අතර එය අතින් කළ හෝ වෙනත් ආරක්ෂක පියවර ... ක්රියාත්මක කළ යුතු
fivef

3
NeMnebuerquo මෙය හැසිරවීමට වඩා හොඳ ක්‍රමයක් ඔබ අපට දන්වන්නේ නම් මම සතුටු වන්නෙමි, අපට සහභාගී නොවූ කණ්ඩායම් ස්ක්‍රිප්ට් භාවිතා කරමින් රෙපෝවක් ක්ලෝන කිරීමට අවශ්‍ය වූ විට සහ අපට මෙම විමසුම පසුකර යාමට අවශ්‍ය වූ විට. මෙය නිවැරදි එකක් නොවේ යැයි ඔබ සිතන්නේ නම් කරුණාකර සැබෑ විසඳුමක් පිළිබඳව යම් ආලෝකයක් හෙළි කරන්න!
සයිඩ් වාකාස්

44

සඳහන් කළ පරිදි, යතුරු පරිලෝකනය කිරීම එය කිරීමට නිවැරදි හා බාධා රහිත ක්‍රමය වනු ඇත.

ssh-keyscan -t rsa,dsa HOST 2>&1 | sort -u - ~/.ssh/known_hosts > ~/.ssh/tmp_hosts
mv ~/.ssh/tmp_hosts ~/.ssh/known_hosts

ඉහත දැක්වෙන්නේ ධාරකය එක් කිරීමට උපක්‍රමය, එය තවම එකතු කර නොමැති නම් පමණි. එය සමගාමී මුදල් ආරක්ෂිත නොවේ; ඔබ නොකළ යුතු ද ඇබිත්ත එකම සම්භවයකින් යන්ත්රය මත වරක් වඩා වැඩි කරන අතර ම, tmp_hosts ගොනුව අවසානයේ, පුම්බා බවට පත් වෙමින් ඇති known_hosts ගොනුවට ප්රමුඛ පෙළේ, ප්රහාරයට ලක් විය හැක ලෙස ක්රියාත්මක ...


යතුර කලින් දන්නා_ හොස්ට් වල තිබේදැයි පරීක්ෂා කිරීමට ක්‍රමයක් තිබේද ssh-keyscan? හේතුව එයට යම් කාලයක් සහ අමතර ජාල සම්බන්ධතාවයක් අවශ්‍ය වීමයි.
utapyngo

1
මෙම ගොනුවේ මුල් පෝස්ටරයේ අනුවාදය cat ~/.ssh/tmp_hosts > ~/.ssh/known_hostsතිබුනද පසුව කරන ලද සංස්කරණයකින් එය වෙනස් විය >>. භාවිතා >>කිරීම දෝෂයකි. එය පළමු පේළියේ ඇති සුවිශේෂත්වයේ පරමාර්ථය පරාජය කරන අතර, known_hostsඑය ක්‍රියාත්මක වන සෑම අවස්ථාවකම නව ඇතුළත් කිරීම් සිදු කරයි. (එය නැවත වෙනස් කිරීම සඳහා සංස්කරණයක් පළ කර ඇත.)
paulmelnikow

1
මෙය අනෙක් MITM ප්‍රහාරයන්ට යටත් වේ.
Mnebuerquo

aputapyngo ssh-keygen -F මඟින් ඔබට වර්තමාන ඇඟිලි සලකුණ ලබා දෙනු ඇත. ආපසු 1 කේතය සමඟ එය හිස්ව පැමිණේ නම්, ඔබට එය නැත. එය යමක් මුද්‍රණය කර ආපසු කේතය 0 නම්, එය දැනටමත් පවතී.
පොහොසත් එල්

1
ඔබ MITM ගැන එතරම් සැලකිල්ලක් දක්වන්නේ නම්, DNSSEC සහ SSHFP වාර්තා යෙදවීම හෝ යතුරු බෙදා හැරීම සඳහා වෙනත් ආරක්ෂිත ක්‍රම භාවිතා කිරීම සහ මෙම ක්ලඩ්ජ් විසඳුම අදාල නොවේ.
සාට්

19

ඔබට ssh-keyscanපොදු යතුර අල්ලා ඔබේ known_hostsගොනුවට එකතු කිරීමට විධානය භාවිතා කළ හැකිය .


3
ඇඟිලි සලකුණ නිවැරදි යතුර බව තහවුරු කර ගැනීමට ඔබ එය පරීක්ෂා කර බැලීමට වග බලා ගන්න. එසේ නොමැතිනම් ඔබ MITM ප්‍රහාරයන්ට විවෘත වේ.
Mnebuerquo

3
සන්දර්භය තුළ neMnebuerquo Fair point, නමුත් නිවැරදි යතුර කුමක්දැයි දැනටමත් දැන සිටියේ නම් යමෙකු ක්‍රමලේඛිකව යතුරු රැස් කිරීමට උත්සාහ කරන්නේ ඇයි?
බ්‍රයන් ක්ලයින්

මෙය කළ හැකි ක්‍රමය නොවේ. MITM.
ජේම්ස්ෆිෂර්

8

ඔබගේ නාට්‍යයට ssh-keycan ඇතුළත් කළ හැකි ආකාරය මෙයයි :

---
# ansible playbook that adds ssh fingerprints to known_hosts
- hosts: all
  connection: local
  gather_facts: no
  tasks:
  - command: /usr/bin/ssh-keyscan -T 10 {{ ansible_host }}
    register: keyscan
  - lineinfile: name=~/.ssh/known_hosts create=yes line={{ item }}
    with_items: '{{ keyscan.results | map(attribute='stdout_lines') | list }}'

1
ඔබ දන්නා වලංගු දන්නා_ හොස්ට් ගොනුවක් උඩුගත කරනවාද, නැතහොත් ඔබ ඇඟිලි සලකුණු සත්‍යාපනය නොකර ssh-keycan කරමින් ප්‍රතිදානය දන්නා_ හොස්ට් වෙත දමන්නේද?
Mnebuerquo

1
මෙය හුදෙක් යතුරු පුවරුවක ප්‍රතිදානය ඉවතලීමකි, ඔව්. එනිසා ඇත්ත වශයෙන්ම එය StrictHostKeyChecking = නැත, නිහ silent දන්නා_හෝස්ට් ssh විකල්ප සමඟ නොගැලපීම යාවත්කාලීන කිරීම සමඟ ය. මෙම කාර්යය සෑම විටම 'වෙනස් කළ' ලෙස සලකුණු කිරීමට හේතු වන ssh-keycan පේළි කිහිපයක් නැවත ලබා දීම නිසා මෙම විසඳුම හොඳින් ක්‍රියාත්මක නොවේ
Zart

මෙය කළ හැකි ක්‍රමය නොවේ. MITM.
ජේම්ස්ෆිෂර්

3
@ ජේම්ස්ෂ්ෆිෂර් මෙය හැසිරවීමට වඩා හොඳ ක්‍රමයක් ඔබ අපට දන්වන්නේ නම් මම සතුටු වන්නෙමි, අපට සහභාගී නොවූ කණ්ඩායම් ස්ක්‍රිප්ට් භාවිතා කරමින් රෙපෝවක් ක්ලෝන කිරීමට අවශ්‍ය වූ විට සහ අපට මෙම විමසුම පසුකර යාමට අවශ්‍ය වූ විට. මෙය නිවැරදි එකක් නොවේ යැයි ඔබ සිතන්නේ නම් කරුණාකර සැබෑ විසඳුමක් පිළිබඳව යම් ආලෝකයක් හෙළි කරන්න! මෙය කිරීමට නිවැරදි ක්‍රමය නොවේ යැයි ඔබ සිතන්නේ නම් කරුණාකර එය කරන්නේ කෙසේදැයි අපට දන්වන්න!
සයිඩ් වාකාස්

එය දන්නා_ හොස්ට් වලට අගයන් එකතු කිරීමේ පරිපූර්ණ වලංගු ක්‍රමයකි, නමුත් ඔව් එය MITM වලට ගොදුරු වේ. කෙසේ වෙතත්, අභ්යන්තර භාවිතය සඳහා එය හොඳයි.
කැමරන් ලෝවෙල් පාමර්

7

මෙය සම්පුර්ණ විසඳුමක් වනු ඇත, පළමු වරට පමණක් සත්කාරක යතුර පිළිගැනීම

#!/usr/bin/env ansible-playbook
---
- name: accept ssh fingerprint automatically for the first time
  hosts: all
  connection: local
  gather_facts: False

  tasks:
    - name: "check if known_hosts contains server's fingerprint"
      command: ssh-keygen -F {{ inventory_hostname }}
      register: keygen
      failed_when: keygen.stderr != ''
      changed_when: False

    - name: fetch remote ssh key
      command: ssh-keyscan -T5 {{ inventory_hostname }}
      register: keyscan
      failed_when: keyscan.rc != 0 or keyscan.stdout == ''
      changed_when: False
      when: keygen.rc == 1

    - name: add ssh-key to local known_hosts
      lineinfile:
        name: ~/.ssh/known_hosts
        create: yes
        line: "{{ item }}"
      when: keygen.rc == 1
      with_items: '{{ keyscan.stdout_lines|default([]) }}'

1
මෙය කළ හැකි ක්‍රමය නොවේ. MITM.
ජේම්ස්ෆිෂර්

7

මම එක්-ලයිනර් ස්ක්‍රිප්ට් එකක් කරමි, ටිකක් දිගු නමුත් ප්‍රයෝජනවත් අයිපී සහිත ධාරකයන් සඳහා මෙම කාර්යය කිරීමට, භාවිතා කිරීම digසහbash

(host=github.com; ssh-keyscan -H $host; for ip in $(dig @8.8.8.8 github.com +short); do ssh-keyscan -H $host,$ip; ssh-keyscan -H $ip; done) 2> /dev/null >> .ssh/known_hosts

6

මට ඒ හා සමාන ගැටළුවක් ඇති අතර, සපයන ලද සමහර පිළිතුරු ස්වයංක්‍රීය විසඳුමකට මග පෑදූ බව මට පෙනී ගියේය. පහත දැක්වෙන්නේ මා භාවිතා කිරීම අවසන් කළ දෙයයි, එය උපකාරී වේ යැයි සිතමු:

ssh -o "StrictHostKeyChecking no" -o PasswordAuthentication=no 10.x.x.x

එය known_hostsමුරපදය සඳහා යතුර එක් කරන අතර එය විමසන්නේ නැත.


2
MITM ප්‍රහාරයන්ට ගොදුරු විය හැකිය. ඔබ ඇඟිලි සලකුණු පරීක්ෂා කරන්නේ නැත.
Mnebuerquo

6
කිසිවෙකු ඇඟිලි සලකුණ පරීක්ෂා නොකරයි.
බ්‍රෙන්ඩන් බර්ඩ්

මෙය කළ හැකි ක්‍රමය නොවේ. MITM.
ජේම්ස්ෆිෂර්

5

මෙය නිසියාකාරව සිදු කිරීම සඳහා, ඔබට සැබවින්ම කිරීමට අවශ්‍ය වන්නේ ඔබ ඒවා නිර්මාණය කරන විට VM වල ධාරක පොදු යතුරු එකතු කර ඒවා ගොනුවකට දමන්න known_hosts. එවිට ඔබට -o GlobalKnownHostsFile=...එම ගොනුව වෙත යොමු කරමින්, ඔබ සම්බන්ධ විය යුතු යැයි ඔබ විශ්වාස කරන ධාරකයට සම්බන්ධ වන බව සහතික කළ හැකිය. ඔබ මෙය කරන්නේ කෙසේද යන්න රඳා පවතින්නේ ඔබ අථත්ය යාන්ත්රණය කරන්නේ කෙසේද යන්න මතය, නමුත් එය අථත්ය ගොනු පද්ධතියෙන් කියවීම, හැකි නම්, හෝ /etc/ssh/ssh_host_rsa_key.pubවින්යාසය අතරතුර අන්තර්ගතය මුද්රණය කිරීමට ධාරකය ලබා ගැනීම උපක්රමය කළ හැකිය.

එයින් කියැවෙන්නේ, ඔබ වැඩ කරන්නේ කුමන ආකාරයේ පරිසරයකද යන්න සහ ඔබේ අපේක්ෂිත විරුද්ධවාදීන් කවුරුන්ද යන්න මත පදනම්ව මෙය ප්‍රයෝජනවත් නොවනු ඇත. ඉහත තවත් පිළිතුරු කිහිපයක විස්තර කර ඇති පරිදි සරල "පළමු සම්බන්ධතාවයේ ගබඩාවක්" කිරීම (ස්කෑන් කිරීමකින් හෝ පළමු "සැබෑ" සම්බන්ධතාවය අතරතුර) කිරීම සැලකිය යුතු තරම් පහසු විය හැකි අතර තවමත් යම් ආරක්‍ෂිත ආරක්ෂාවක් සපයයි. කෙසේ වෙතත්, ඔබ මෙය කරන්නේ නම්, පරිශීලකයා දන්නා ධාරක ගොනුව ( -o UserKnownHostsFile=...) මෙම විශේෂිත පරීක්ෂණ ස්ථාපනය සඳහා විශේෂිත ගොනුවකට වෙනස් කිරීමට මම තරයේ යෝජනා කරමි ; මෙය ඔබගේ පුද්ගලික දන්නා ධාරක ගොනුව පරීක්ෂණ තොරතුරු සමඟ දූෂණය කිරීමෙන් වළක්වනු ඇති අතර ඔබ ඔබේ වීඑම් යන්ත්‍ර මකා දැමූ විට දැන් නිෂ් less ල පොදු යතුරු පිරිසිදු කිරීම පහසු කරයි.


5

පහත දැක්වෙන්නේ ~ / .ssh / known_hosts හි අනුපිටපත් ඇතුළත් කිරීමෙන් වළකින්න:

if ! grep "$(ssh-keyscan github.com 2>/dev/null)" ~/.ssh/known_hosts > /dev/null; then
    ssh-keyscan github.com >> ~/.ssh/known_hosts
fi

1
මෙය කළ හැකි ක්‍රමය නොවේ. MITM.
ජේම්ස්ෆිෂර්

මම මේ පිළිතුරට වඩාත්ම කැමතියි. මා හැර වෙන කිසිවෙකුට වැදගත් නොවන අහඹු VPS හි ආරම්භක සැකසුම සඳහා, MITM අවදානම අතුරුදහන් විය හැකි තරම් කුඩා ය. අසීමිත විකාර ... පළමු පේළිය විය යුතුයmkdir -p ~/.ssh/known_hosts;
මාටින් බ්‍රැම්වෙල්

5

ඔබ මෙම යන්ත්‍ර සාදන්නේ කෙසේද? ඔබට dns යාවත්කාලීන ස්ක්‍රිප්ට් එකක් ධාවනය කළ හැකිද? ඔබට IPA වසමකට සම්බන්ධ විය හැකිද?

FreeIPA මෙය ස්වයංක්‍රීයව සිදු කරයි, නමුත් අත්‍යවශ්‍යයෙන්ම ඔබට අවශ්‍ය වන්නේ ඔබේ කලාපයේ SSHFP dns වාර්තා සහ DNSSEC පමණි (freeipa වින්‍යාසගත කළ හැකි විකල්ප ලෙස සපයයි (පෙරනිමියෙන් dnssec අක්‍රීය කර ඇත)).

ධාවනය කිරීමෙන් ඔබට දැනට පවතින SSHFP වාර්තා ඔබේ සත්කාරක සමාගමෙන් ලබා ගත හැකිය.

ssh-keygen -r jersey.jacobdevans.com

jersey.jacobdevans.com IN SSHFP 1 1 4d8589de6b1a48e148d8fc9fbb967f1b29f53ebc jersey.jacobdevans.com IN SSHFP 1 2 6503272a11ba6d7fec2518c02dfed88f3d455ac7786ee5dbd72df63307209d55 jersey.jacobdevans.com IN SSHFP 3, 1 වන 5a7a1e8ab8f25b86b63c377b303659289b895736> jersey.jacobdevans.com IN SSHFP 3, 2 වන 1f50f790117dfedd329dbcf622a7d47551e12ff5913902c66a7da28e47de4f4b

ප්‍රකාශයට පත් කළ පසු, ඔබ VerifyHostKeyDNS yesඔබේ ssh_config හෝ ~ / .ssh / config වෙත එක් කරයි

ගූගල් විසින් DNSSEC වෙත මාරුවීමට තීරණය කළ විට, ඔබට සත්කාරක විමසුමක් නොමැතිව ssh කළ හැකිය.

ssh jersey.jacobdevans.com

නමුත් මගේ වසම තවම අත්සන් කර නැත, එබැවින් දැනට ඔබට පෙනෙනු ඇත ....

debug1: සේවාදායක ධාරක යතුර: ecdsa-sha2-nistp256 SHA256: H1D3kBF9 / t0ynbz2IqfUdVHhL / WROQLGan2ijkfeT0s

debug1: DNS හි අනාරක්ෂිත ඇඟිලි සලකුණු 4 ක් හමු විය

debug1: ගැලපෙන ධාරක යතුරු ඇඟිලි සලකුණු

'jersey.jacobdevans.com (2605: 6400: 10: 434 :: 10)' ධාරකයේ සත්‍යතාව තහවුරු කළ නොහැක. ECDSA යතුරු ඇඟිලි සලකුණ SHA256: H1D3kBF9 / t0ynbz2IqfUdVHhL / WROQLGan2ijkfeT0s. ගැලපෙන ධාරක යතුරු ඇඟිලි සලකුණ DNS හි හමු විය. ඔබට දිගටම සම්බන්ධ වීමට අවශ්‍ය බව ඔබට විශ්වාසද (ඔව් / නැත)? නොමැත


4

එබැවින්, පහත දැක්වෙන පරිදි, git repo ක්ලෝන කිරීමේ නොදන්නා ධාරක අත්පොත අන්තර්ක්‍රියා මඟ හැරීම සඳහා මම ලෞකික ක්‍රමයක් සොයමින් සිටියෙමි:

brad@computer:~$ git clone git@bitbucket.org:viperks/viperks-api.git
Cloning into 'viperks-api'...
The authenticity of host 'bitbucket.org (104.192.143.3)' can't be established.
RSA key fingerprint is 97:8c:1b:f2:6f:14:6b:5c:3b:ec:aa:46:46:74:7c:40.
Are you sure you want to continue connecting (yes/no)?

RSA යතුරු ඇඟිලි සලකුණ සටහන් කරන්න ...

ඉතින්, මෙය එස්එස්එච් දෙයක්, මෙය එස්එස්එච් හා සාමාන්‍යයෙන් එස්එස්එච් සම්බන්ධ දේවල් සඳහා වැඩ කරයි ...

brad@computer:~$ nmap bitbucket.org --script ssh-hostkey

Starting Nmap 7.01 ( https://nmap.org ) at 2016-10-05 10:21 EDT
Nmap scan report for bitbucket.org (104.192.143.3)
Host is up (0.032s latency).
Other addresses for bitbucket.org (not scanned): 104.192.143.2 104.192.143.1 2401:1d80:1010::150
Not shown: 997 filtered ports
PORT    STATE SERVICE
22/tcp  open  ssh
| ssh-hostkey:
|   1024 35:ee:d7:b8:ef:d7:79:e2:c6:43:9e:ab:40:6f:50:74 (DSA)
|_  2048 97:8c:1b:f2:6f:14:6b:5c:3b:ec:aa:46:46:74:7c:40 (RSA)
80/tcp  open  http
443/tcp open  https

Nmap done: 1 IP address (1 host up) scanned in 42.42 seconds

පළමුව, ඔබේ දෛනික ධාවකයේ nmap ස්ථාපනය කරන්න. විවෘත වරායන් හඳුනා ගැනීම සහ SSH ඇඟිලි සලකුණු අතින් සත්‍යාපනය කිරීම වැනි සමහර දේ සඳහා nmap බෙහෙවින් උපකාරී වේ. නමුත්, අප කරන දෙයට ආපසු යන්න.

යහපත. එක්කෝ මම එය පරික්ෂා කළ බහුවිධ ස්ථාන සහ යන්ත්‍ර සමඟ සම්මුතියකට පැමිණ සිටිමි - නැතහොත් සෑම දෙයක්ම හන්කි ඩෝරි වීම පිළිබඳ වඩාත් පැහැදිලි කළ හැකි පැහැදිලි කිරීම සිදුවන්නේ කුමක් ද යන්නයි.

එම 'ඇඟිලි සලකුණ' යනු එකම ඇඟිලි සලකුණු එකකට එකකට වඩා විසඳීමේ අවදානමක අපගේ මිනිස් පහසුව සඳහා එක් මාර්ග ඇල්ගොරිතමයකින් කෙටි කරන ලද නූලකි. එය සිදු වේ, ඒවා isions ට්ටන ලෙස හැඳින්වේ.

කෙසේ වෙතත්, පහත සන්දර්භය තුළ අපට දැකිය හැකි මුල් නූලට ආපසු යන්න.

brad@computer:~$ ssh-keyscan bitbucket.org
# bitbucket.org SSH-2.0-conker_1.0.257-ce87fba app-128
no hostkey alg
# bitbucket.org SSH-2.0-conker_1.0.257-ce87fba app-129
bitbucket.org ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAubiN81eDcafrgMeLzaFPsw2kNvEcqTKl/VqLat/MaB33pZy0y3rJZtnqwR2qOOvbwKZYKiEO1O6VqNEBxKvJJelCq0dTXWT5pbO2gDXC6h6QDXCaHo6pOHGPUy+YBaGQRGuSusMEASYiWunYN0vCAI8QaXnWMXNMdFP3jHAJH0eDsoiGnLPBlBp4TNm6rYI74nMzgz3B9IikW4WVK+dc8KZJZWYjAuORU3jc1c/NPskD2ASinf8v3xnfXeukU0sJ5N6m5E8VLjObPEO+mN2t/FZTMZLiFqPWc/ALSqnMnnhwrNi2rbfg/rd/IpL8Le3pSBne8+seeFVBoGqzHM9yXw==
# bitbucket.org SSH-2.0-conker_1.0.257-ce87fba app-123
no hostkey alg

ඉතින්, කල්තියාම, අපට මුල් ධාරකයාගෙන් හඳුනාගැනීමේ ක්‍රමයක් ඉල්ලා සිටීමට ක්‍රමයක් තිබේ.

මෙම අවස්ථාවෙහිදී අපි අතින් ස්වයංක්‍රීයව අවදානමට ලක්ව සිටිමු - නූල් ගැලපේ, ඇඟිලි සලකුණ නිර්මාණය කරන මූලික දත්ත අප සතුව ඇති අතර අනාගතයේදී අපට එම මූලික දත්ත (isions ට්ටන වැළැක්වීම) ඉල්ලා සිටිය හැකිය.

දැන් එම නූල භාවිතා කිරීම සඳහා ධාරක සත්‍යතාව ගැන විමසීම වළක්වයි ...

මෙම නඩුවේ දන්නා_හෝස්ට් ගොනුව සරල පෙළ ඇතුළත් කිරීම් භාවිතා නොකරයි. ඔබ ඒවා දුටු විට හැෂ් ඇතුළත් කිරීම් දැන ගනු ඇත, ඒවා xyz.com හෝ 123.45.67.89 වෙනුවට අහඹු අක්ෂර සහිත හැෂ් මෙන් පෙනේ.

brad@computer:~$ ssh-keyscan -t rsa -H bitbucket.org
# bitbucket.org SSH-2.0-conker_1.0.257-ce87fba app-128
|1|yr6p7i8doyLhDtrrnWDk7m9QVXk=|LuKNg9gypeDhfRo/AvLTAlxnyQw= ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAubiN81eDcafrgMeLzaFPsw2kNvEcqTKl/VqLat/MaB33pZy0y3rJZtnqwR2qOOvbwKZYKiEO1O6VqNEBxKvJJelCq0dTXWT5pbO2gDXC6h6QDXCaHo6pOHGPUy+YBaGQRGuSusMEASYiWunYN0vCAI8QaXnWMXNMdFP3jHAJH0eDsoiGnLPBlBp4TNm6rYI74nMzgz3B9IikW4WVK+dc8KZJZWYjAuORU3jc1c/NPskD2ASinf8v3xnfXeukU0sJ5N6m5E8VLjObPEO+mN2t/FZTMZLiFqPWc/ALSqnMnnhwrNi2rbfg/rd/IpL8Le3pSBne8+seeFVBoGqzHM9yXw==

පළමු විවරණ රේඛාව කෝපාවිෂ්ට ලෙස පෙන්වයි - නමුත් ඔබට ">" හෝ ">>" සම්මුතිය හරහා සරල යළි-යොමුවීමක් මඟින් එය ඉවත් කළ හැකිය.

"ධාරකය" සහ විශ්වාසය හඳුනා ගැනීම සඳහා භාවිතා කළ නොහැකි දත්ත ලබා ගැනීමට මම උපරිම උත්සාහයක් ගෙන ඇති බැවින්, මම මෙම හඳුනාගැනීම මගේ ~ / .ssh නාමාවලියෙහි ඇති දන්නා_හෝස්ට් ගොනුවට එක් කරමි. එය දැන් දන්නා සත්කාරකයකු ලෙස හදුනා ගන්නා බැවින්, ඔබ යෞවනයෙකු ලෙස සිටියදී ඉහත සඳහන් කළ විමසුම මට නොලැබේ.

මා සමඟ රැඳී සිටීම ගැන ස්තූතියි, මෙන්න ඔබ යන්න. මම සීඅයි වැඩ ප්‍රවාහයක කොටසක් ලෙස අන්තර්ක්‍රියාකාරී නොවන ආකාරයෙන් එහි ඇති මගේ ගබඩාවන් සමඟ අන්තර් ක්‍රියා කිරීමට හැකි වන පරිදි මම බිට්බකට් ආර්එස්ඒ යතුර එක් කරමි, නමුත් ඔබට අවශ්‍ය ඕනෑම දෙයක්.

#!/bin/bash
cp ~/.ssh/known_hosts ~/.ssh/known_hosts.old && echo "|1|yr6p7i8doyLhDtrrnWDk7m9QVXk=|LuKNg9gypeDhfRo/AvLTAlxnyQw= ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAubiN81eDcafrgMeLzaFPsw2kNvEcqTKl/VqLat/MaB33pZy0y3rJZtnqwR2qOOvbwKZYKiEO1O6VqNEBxKvJJelCq0dTXWT5pbO2gDXC6h6QDXCaHo6pOHGPUy+YBaGQRGuSusMEASYiWunYN0vCAI8QaXnWMXNMdFP3jHAJH0eDsoiGnLPBlBp4TNm6rYI74nMzgz3B9IikW4WVK+dc8KZJZWYjAuORU3jc1c/NPskD2ASinf8v3xnfXeukU0sJ5N6m5E8VLjObPEO+mN2t/FZTMZLiFqPWc/ALSqnMnnhwrNi2rbfg/rd/IpL8Le3pSBne8+seeFVBoGqzHM9yXw==" >> ~/.ssh/known_hosts

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

කිසිදු ආකාරයක පරීක්ෂාවකින් තොරව ක්‍රමානුකූලව යතුර අන්ධ ලෙස එක් කරන ලෙස ඔබට පවසන බොහෝ ගොඩගැසී ඇති පෝස්ට් මම දුටුවෙමි. විවිධ ජාලයන්හි විවිධ යන්ත්‍ර වලින් ඔබ යතුර පරික්ෂා කරන තරමට, ධාරකයා එය පවසන දෙය බව ඔබට වැඩි විශ්වාසයක් තැබිය හැකිය - තවද මෙම ආරක්ෂිත ස්ථරයෙන් ඔබට බලාපොරොත්තු විය හැකි හොඳම දේ එයයි.

වැරදි ssh -oStrictHostKeyChecking = ධාරක නාමයක් නොමැත [විධානය]

වැරදි ssh-keycan -t rsa -H ධාරක නාමය >> ~ / .ssh / known_hosts

කරුණාකර ඉහත කාරණා කිසිවක් නොකරන්න. මැද ප්‍රහාරයේ යෙදී සිටින මිනිසෙකු හරහා ඔබේ දත්ත හුවමාරුව ගැන යමෙකු සවන් දීමෙන් වළක්වා ගැනීමේ අවස්ථාව වැඩි කිරීමට ඔබට අවස්ථාව ලබා දී ඇත - එම අවස්ථාව භාවිතා කරන්න. වෙනස වචනානුසාරයෙන් සත්‍යාපනය කරන්නේ ඔබ සතුව ඇති ආර්එස්ඒ යතුර හොඳ විශ්වාසදායක සේවාදායකයක් වන අතර දැන් ඔබ එම තොරතුරු සංසන්දනය කිරීම සඳහා ලබා ගන්නේ කෙසේදැයි ඔබ දන්නා නිසා සම්බන්ධතාවය විශ්වාස කළ හැකිය. විවිධ පරිගණක සහ ජාල වලින් වැඩි සැසඳීම් සාමාන්‍යයෙන් සම්බන්ධතාවය විශ්වාස කිරීමට ඇති හැකියාව වැඩි කරන බව මතක තබා ගන්න.


මෙම ගැටලුවට හොඳම විසඳුම මෙය යැයි මම සිතමි. කෙසේ වෙතත්, ඇමසන් ඊසී 2 වැනි දෙයක් සඳහා එන්එම්ඒපී භාවිතා කරන විට ඉතා ප්‍රවේශම් වන්න, එන්එම්ඒපී කරන වරාය පරිලෝකනය ගැන මට අනතුරු ඇඟවීමක් ලැබුණි! වරාය පරිලෝකනය කිරීමට පෙර ඒවායේ ස්වරූපය පුරවන්න!
සයිඩ් වාකාස්

...හරි හොඳයි. ඔබ EC2 වෙතින් වරාය පරිලෝකනය කරන්නේ ඇයිදැයි මම නොදනිමි. ඔබ ඔබගේ ගිණුමට ප්‍රවිෂ්ට වී ඇත්නම්, ඔබට සත්‍ය යන්ත්‍රවලින් යතුරු ලබා ගත හැකිය. ඔබට පාලනය කළ නොහැකි යන්ත්‍ර සඳහා මෙය වැඩිය. AWS වරාය පරිලෝකන සීමාවන්ට යටත් නොවන දේශීය යන්ත්‍රයක් ඔබ සතුව ඇතැයි මම සිතමි. එහෙත්, ඔබ AWS සමඟ nmap ධාවනය කළ යුතු තත්වයක සිටී නම්, මෙම අනතුරු ඇඟවීම ප්‍රයෝජනවත් වනු ඇතැයි මම සිතමි.
බ්‍රැඩ්චෙස්නි 79

ඔබේ සේවා ස්ථානයෙන් SSH ධාරක යතුර කියවීමට nmap භාවිතා කිරීම සහ එම අගය විශ්වාස කිරීම SSH හරහා StructHostKeyChecking සමඟ සම්බන්ධ වීමට වඩා වෙනස් නොවේ. එය මිනිසාගේ මැදි ප්‍රහාරයකට ගොදුරු විය හැකිය.
මීකා ආර් ලෙඩ්බෙටර්

... @ MicahRLedbetter ඒ නිසා මම යෝජනා කළේ "විවිධ පරිගණක හා ජාලයන්ගෙන් වැඩි සැසඳීම් මඟින් සම්බන්ධතාවය විශ්වාස කිරීමට ඇති හැකියාව වැඩි කරයි". නමුත්, එය මගේ අදහසයි. ඔබ කවදා හෝ ඔබේ ඉලක්ක ධාරකය එක් පරිසර තත්වයකින් පමණක් පරීක්ෂා කරන්නේ නම්, ඔබ කිසියම් විෂමතාවයක් ගැන දැන ගන්නේ කෙසේද? ඔබට මීට වඩා හොඳ යෝජනා තිබේද?
බ්‍රැඩ්චෙස්නි 79

2
මෙය ආරක්ෂක රඟහලයි. වැඩි ආරක්ෂාවක් ඇති කිරීම සඳහා සංකීර්ණ දෙයක් කිරීම. ධාරකයේ යතුර ඉල්ලීමට ඔබ කොපමණ විවිධ ක්‍රම භාවිතා කළත් කමක් නැත. ඔබට විශ්වාස කළ හැකිදැයි එකම පුද්ගලයාගෙන් කිහිප වතාවක්ම විමසන්න (සමහර විට ඔබ අමතන්න, ඊමේල් කරන්න, පෙළ සහ ගොළුබෙල්ලා තැපැල් කරන්න). ඔවුන් සැමවිටම ඔව් යැයි කියනු ඇත, නමුත් ඔබ වැරදි පුද්ගලයාගෙන් ඇසුවොත් කමක් නැත.
largelysuperiorman

4

මේ සමස්තය

  • ssh-key-scan
  • ssh-copy-id
  • ECSDA යතුරු අනතුරු ඇඟවීම

ව්‍යාපාරය මට කරදරයක් වූ නිසා මම තෝරා ගත්තා

ඒවා සියල්ලම පාලනය කිරීමට එක් පිටපතක්

මෙය පිටපතෙහි ප්‍රභේදයක් වන අතර https://askubuntu.com/a/949731/129227 අමඩු බාගේ පිළිතුර සමඟ https://serverfault.com/a/858957/162693 පුඩුවක් තුළ ඇත.

උදාහරණ ඇමතුම

./sshchek somedomain site1 site2 site3

ස්ක්‍රිප්ට් එක නම් අඩවි හරහා ලූප වී .ssh / config සහ .ssh / known_hosts ගොනුව වෙනස් කර ඉල්ලීම පරිදි ssh-copy-id කරන්න - අන්තිම අංගය සඳහා ssh පරීක්ෂණ ඇමතුම් අසාර්ථක වීමට ඉඩ දෙන්න උදා. මුරපද ඉල්ලීම.

sshcheck ස්ක්‍රිප්ට්

#!/bin/bash
# WF 2017-08-25
# check ssh access to bitplan servers

#ansi colors
#http://www.csc.uvic.ca/~sae/seng265/fall04/tips/s265s047-tips/bash-using-colors.html
blue='\033[0;34m'  
red='\033[0;31m'  
green='\033[0;32m' # '\e[1;32m' is too bright for white bg.
endColor='\033[0m'

#
# a colored message 
#   params:
#     1: l_color - the color of the message
#     2: l_msg - the message to display
#
color_msg() {
  local l_color="$1"
  local l_msg="$2"
  echo -e "${l_color}$l_msg${endColor}"
}

#
# error
#
#   show an error message and exit
#
#   params:
#     1: l_msg - the message to display
error() {
  local l_msg="$1"
  # use ansi red for error
  color_msg $red "Error: $l_msg" 1>&2
  exit 1
}

#
# show the usage
#
usage() {
  echo "usage: $0 domain sites"
  exit 1 
}

#
# check known_hosts entry for server
#
checkknown() {
  local l_server="$1"
  #echo $l_server
  local l_sid="$(ssh-keyscan $l_server 2>/dev/null)" 
  #echo $l_sid
  if (! grep "$l_sid" $sknown) > /dev/null 
  then
    color_msg $blue "adding $l_server to $sknown"
    ssh-keyscan $l_server >> $sknown 2>&1
  fi
}

#
# check the given server
#
checkserver() {
  local l_server="$1"
  grep $l_server $sconfig > /dev/null
  if [ $? -eq 1 ]
  then
    color_msg $blue "adding $l_server to $sconfig"
    today=$(date "+%Y-%m-%d")
    echo "# added $today by $0"  >> $sconfig
    echo "Host $l_server" >> $sconfig
    echo "   StrictHostKeyChecking no" >> $sconfig
    echo "   userKnownHostsFile=/dev/null" >> $sconfig
    echo "" >> $sconfig
    checkknown $l_server
  else
    color_msg $green "$l_server found in $sconfig"
  fi
  ssh -q $l_server id > /dev/null
  if [ $? -eq 0 ]
  then
    color_msg $green "$l_server accessible via ssh"
  else
    color_msg $red "ssh to $l_server failed" 
    color_msg $blue "shall I ssh-copy-id credentials to $l_server?"
    read answer
    case $answer in
      y|yes) ssh-copy-id $l_server
    esac
  fi
}

#
# check all servers
#
checkservers() {
me=$(hostname -f)
for server in $(echo $* | sort)
do
  os=`uname`
  case $os in
   # Mac OS X
   Darwin*)
     pingoption=" -t1";;
    *) ;;
  esac

  pingresult=$(ping $pingoption -i0.2 -c1 $server)
  echo $pingresult | grep 100 > /dev/null
  if [ $? -eq 1 ]
  then 
    checkserver $server
    checkserver $server.$domain
  else
    color_msg $red "ping to $server failed"
  fi
done
}

#
# check configuration
#
checkconfig() {
#/ubuntu/87449/how-to-disable-strict-host-key-checking-in-ssh
  if [ -f $sconfig ]
  then
    color_msg $green "$sconfig exists"
    ls -l $sconfig
  fi
}

sconfig=~/.ssh/config
sknown=~/.ssh/known_hosts

case  $# in
  0) usage ;;
  1) usage ;;
  *) 
    domain=$1 
    shift 
    color_msg $blue "checking ssh configuration for domain $domain sites $*"
    checkconfig
    checkservers $* 
    #for server in $(echo $* | sort)
    ##do
    #  checkknown $server 
    #done
    ;;
esac

2

මෙන්න සත්කාරක එකතුවක් කරන්නේ කෙසේද

ධාරක එකතුවක් අර්ථ දක්වන්න

ssh_hosts:
  - server1.domain.com
  - server2.domain.com
  - server3.domain.com
  - server4.domain.com
  - server5.domain.com
  - server6.domain.com
  - server7.domain.com
  - server8.domain.com
  - server9.domain.com

දන්නා ධාරකයන්ට යතුරු එක් කිරීමට කාර්යයන් දෙකක් අර්ථ දක්වන්න:

- command: "ssh-keyscan {{item}}"
   register: known_host_keys
   with_items: "{{ssh_hosts}}"
   tags:
     - "ssh"

 - name: Add ssh keys to know hosts
   known_hosts:
     name: "{{item.item}}"
     key: "{{item.stdout}}"
     path: ~/.ssh/known_hosts
   with_items: "{{known_host_keys.results}}"

2

එක් එක් නව සේවාදායකයේ / සත්කාරකයේ ඇඟිලි සලකුණු පරීක්ෂා කරන්න . සේවාදායකය සත්‍යාපනය කළ හැකි එකම ක්‍රමය මෙයයි. එය නොමැතිව, ඔබේ SSH සම්බන්ධතාවය මිනිසා අතරමැදි ප්‍රහාරයකට භාජනය විය හැකිය .

එපා පැරණි අගය භාවිතා StrictHostKeyChecking=noකරන කිසි සියලු දී සේවාදායකය සත්යතාව පරීක්ෂා කිරීම. එහි අර්ථය StrictHostKeyChecking=no පසුව පෙරළනු ඇත.

දෙවන විකල්පය, නමුත් අඩු ආරක්ෂිත, භාවිතා කිරීම StrictHostKeyChecking=accept-new, එය OpenSSH හි 7.6 (2017-10-03) අනුවාදයෙන් හඳුන්වා දී ඇත :

පළමු "පිළිගැනීම-නව" මෙතෙක් නොපෙනෙන යතුරු ස්වයංක්‍රීයව පිළිගන්නා නමුත් වෙනස් කළ හෝ අවලංගු සත්කාරක සමාගම් සඳහා සම්බන්ධතා ප්‍රතික්ෂේප කරයි.


1

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

# verify github and gitlab key
# GitHub
github=SHA256:nThbg6kXUpJWGl7E1IGOCspRomTxdCARLviKw6E5SY8
ssh-keyscan github.com >> githubKey
read bit githubkey host <<< $(ssh-keygen -lf githubKey)
if [ "$githubkey" != "$github" ]
then
  echo "The GitHub fingerprint is incorrect"
  exit 1
fi
echo "github.com ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAq2A7hRGmdnm9tUDbO9IDSwBK6TbQa+PXYPCPy6rbTrTtw7PHkccKrpp0yVhp5HdEIcKr6pLlVDBfOLX9QUsyCOV0wzfjIJNlGEYsdlLJizHhbn2mUjvSAHQqZETYP81eFzLQNnPHt4EVVUh7VfDESU84KezmD5QlWpXLmvU31/yMf+Se8xhHTvKSCZIFImWwoG6mbUoWf9nzpIoaSjB+weqqUUmpaaasXVal72J+UX2B+2RPW3RcT0eOzQgqlJL3RKrTJvdsjE3JEAvGq3lGHSZXy28G3skua2SmVi/w4yCE6gbODqnTWlg7+wC604ydGXA8VJiS5ap43JXiUFFAaQ==" | sudo tee -a /etc/ssh/ssh_known_hosts

# GitLab
gitlab=SHA256:ROQFvPThGrW4RuWLoL9tq9I9zJ42fK4XywyRtbOz/EQ
ssh-keyscan gitlab.com >> gitlabKey
read bit gitlabkey host <<< $(ssh-keygen -lf gitlabKey)
if [ "$githubkey" != "$github" ]
then
  echo "The GitLab fingerprint is incorrect"
  exit 1
fi
echo "gitlab.com ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCsj2bNKTBSpIYDEGk9KxsGh3mySTRgMtXL583qmBpzeQ+jqCMRgBqB98u3z++J1sKlXHWfM9dyhSevkMwSbhoR8XIq/U0tCNyokEi/ueaBMCvbcTHhO7FcwzY92WK4Yt0aGROY5qX2UKSeOvuP4D6TPqKF1onrSzH9bx9XUf2lEdWT/ia1NEKjunUqu1xOB/StKDHMoX4/OKyIzuS0q/T1zOATthvasJFoPrAjkohTyaDUz2LN5JoH839hViyEG82yB+MjcFV5MU3N1l1QL3cVUCh93xSaua1N85qivl+siMkPGbO5xR/En4iEY6K2XPASUEMaieWVNTRCtJ4S8H+9" | sudo tee -a /etc/ssh/ssh_known_hosts

GitHub සහ GitLab යතුරු සම්මුතියකට ලක් වුවහොත් වෙනස් විය හැකිය. මෙම අවස්ථාවේ දී, මෙහි සහ එහි නවතම ඒවා පරීක්ෂා කරන්න

සටහන : යතුර දෙවරක් එකතු කර නොමැති බව සහතික කිරීමට ඔබට අවශ්‍ය විය හැකිය. මේ සඳහා වෙනත් පිළිතුරු වෙත යොමු වන්න.


0

ඉහත සඳහන් සත්‍යාපිත විසඳුම භාවිතා කළද, මගේ ssh ක්‍රියා විරහිත වූ අතර, දන්නා_හෝස්ට් ගොනුව ~ / .ssh / නාමාවලියෙන් අස්ථානගත වී ඇති අතර ගොනු පද්ධතිය කියවීමට පමණක් හේතු වූ නිසා මටද එවැනිම ගැටලුවකට මුහුණ දීමට සිදුවිය. SO ධාවන කාලය තුළ මට ~ / .ssh / known_hosts ගොනුව නිර්මාණය කිරීමට නොහැකි විය.

ඔබ සමාන ගැටලුවකට මුහුණ දෙන්නේ නම්, ඔබට දන්නා_හෝස්ට් ගොනුව / tmp ස්ථානයේ ලිවිය හැකිදැයි බලන්න. මෙය බොහෝ දුරට කියවීමට පමණක් ඇති ගොනු පද්ධතියක පවා ලිවීමට සක්‍රීය කර ඇත.

පසුව ssh විධානය මඟින් / tmp ස්ථානයෙන් දන්නා_හෝස්ට් ගොනුව කියවීමට ඔබට ssh නියම කළ හැකිය.

ssh -o UserKnownHostsFile = / tmp / known_hosts -o StrictHostKeyChecking = පරිශීලක නාමයක් නොමැත @ destination_server_ip

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.