ssh-add නැවත පණගැන්වීම් අතර නොපවතී


161

මම නියෝජිතයාට ssh යතුරක් එක් කළේ:

$ ssh-add ~/.ssh/id_rsa_mac
Identity added: /Users/alex/.ssh/id_rsa_mac (/Users/alex/.ssh/id_rsa_mac)

නැවත පණගැන්වීමෙන් පසු නියෝජිතයාට මෙම යතුර තවදුරටත් එකතු නොවේ:

$ ssh-add -l
The agent has no identities.

මෙය සිදු වූයේ ඇයි?


මට දැන් සම්පූර්ණයෙන් පිළිතුරු දීමට වෙලාවක් නැත, නමුත් ssh මාදිලියේ gpg-agent ඔබට අවශ්‍ය දේ කරනු ඇත. උරුමය ssh-agent වෙනුවට එය උත්සාහ කරන්න. මෙය උපකාරී වන්නේ නම් මට පසුව කාලය ලැබුණු විට මෙය උත්සාහ කර පුළුල් කළ හැකිය.
වලංගුභාවය

Ality අගය: gpg- නියෝජිතයා නැවත පණගැන්වීම් හරහා අඛණ්ඩව පවතිනු ඇතැයි මම සැක කරමි.
Pavel Šimerda

@ PavelŠimerda එය පුද්ගලික යතුරු පරිශීලකයන්ගේ මුරපදය සමඟ සංකේතනය $HOME/.gnupg/private-keys-v1.dකර ඔබ ඒවා ssh-add සමඟ එක් කළ විගසම තබයි . එය සැබවින්ම නොනැසී පවතී. හොඳයි, ඔබට අස්ථාවර නොවන නිවාස නාමාවලියක් ඇතැයි උපකල්පනය කරන්න.
වලංගුභාවය

Ality අගය: එය ආරක්ෂක ප්‍රශ්නයක් ලෙස සැලකිය යුතු නොවේද? මුරපදයක් නොමැතිව යතුරක් භාවිතා කර කිසිදු නියෝජිතයෙකුගේ අවශ්‍යතාවයකින් තොරව එය කළ නොහැකිද?
Pavel Šimerda

1
@ PavelŠimerda පරිශීලකයින්ගේ මුරපදය සමඟ යතුර සංකේතනය කර ඇති බැවින් එය සැබවින්ම ආරක්‍ෂිත ගැටළුවක් නොවේ, පරිශීලකයා එය විකේතනය කිරීම සඳහා ලොග් වූ සෑම අවස්ථාවකම මුරපදය ටයිප් කිරීම අවශ්‍ය වේ. සංකේතාංකනය නොකළ යතුර ගබඩා කිරීම යන්නෙන් අදහස් කරන්නේ root සහිත පරිශීලකයෙකුට (හෝ ඔබේ දෘඩ තැටිය ගත් සොරෙකුට) ඔබේ නිවසේ නාමාවලියෙන් ඒවා සොරකම් කළ හැකි අතර, gnupg සමඟ ඒවා සොරකම් කළහොත් ඒවා ඔබගේ මුරපදය සමඟ සංකේතනය කර නිෂ් less ල වනු ඇත.
වලංගුභාවය

Answers:


183

නියෝජිතයාට යතුරු එකතු කිරීම අස්ථිර ය. ඒවා පවතින්නේ නියෝජිතයා ක්‍රියාත්මක වන තාක් කල් පමණි. ඔබ එය මරා දැමුවහොත් හෝ ඔබේ පරිගණකය නැවත ආරම්භ කළහොත් ඔබ ඒවා නැවත එකතු කරන තුරු ඒවා නැති වී යයි. සිට ssh-agentමිනිසා පිටුව:

ssh-agent යනු පොදු යතුරු සත්‍යාපනය සඳහා භාවිතා කරන පුද්ගලික යතුරු රඳවා ගැනීමේ වැඩසටහනකි (RSA, DSA, ECDSA). අදහස නම් ssh-agent ආරම්භ වන්නේ X- සැසියක හෝ පිවිසුම් සැසියක ආරම්භයේ වන අතර අනෙක් සියලුම කවුළු හෝ වැඩසටහන් ssh-agent වැඩසටහනේ සේවාදායකයින් ලෙස ආරම්භ වේ. පරිසර විචල්‍යයන් භාවිතා කිරීමෙන් නියෝජිතයා සොයා ගත හැකි අතර ssh (1) භාවිතා කර වෙනත් යන්ත්‍ර වෙත පිවිසීමේදී සත්‍යාපනය සඳහා ස්වයංක්‍රීයව භාවිතා කළ හැකිය.

නියෝජිතයාට මුලින් පුද්ගලික යතුරු නොමැත. යතුරු එකතු කරනු ලබන්නේ ssh-add (1) භාවිතා කරමිනි. තර්ක තොරව ක්රියාත්මක කරන විට, ssh-එකතු (1) ගොනු කරයි ~/.ssh/id_rsa, ~/.ssh/id_dsa, ~/.ssh/id_ecdsaහා ~/.ssh/identity. අනන්‍යතාවයට මුරපදයක් තිබේ නම්, ssh-add (1) ටර්මිනලයේ මුරපදය එකක් හෝ කුඩා X11 වැඩසටහනකින් X11 යටතේ ක්‍රියාත්මක වන්නේ නම් විමසයි. මේ දෙකම එසේ නොවේ නම් සත්‍යාපනය අසාර්ථක වනු ඇත. ඉන්පසු එය අනන්‍යතාවය නියෝජිතයාට යවයි. අනන්‍යතා කිහිපයක් නියෝජිතයා තුළ ගබඩා කළ හැකිය; නියෝජිතයාට මෙම ඕනෑම අනන්‍යතාවයක් ස්වයංක්‍රීයව භාවිතා කළ හැකිය. ssh-add -lදැනට නියෝජිතයා සතුව ඇති අනන්‍යතා පෙන්වයි.

macOS සියෙරා

මැකෝස් සියෙරා 10.12.2 සිට ඇපල් විසින් SSH වින්‍යාසයන් සඳහා UseKeychain වින්‍යාස විකල්පයක් එකතු කර ඇත. UseKeychain yesඔබගේ එකතු කිරීමෙන් ඔබට මෙම අංගය සක්‍රිය කළ හැකිය ~/.ssh/config.

Host *
  UseKeychain yes

OSX යතුරු පුවරුව

මම ඕඑස්එක්ස් භාවිතා නොකරන නමුත් සුපර් යූසර් හි මෙම ප්‍රශ්නෝත්තරය සොයා ගත්තේ: එස්එස්එච් යතුරු සමඟ මැක් ඕඑස් එක්ස් යතුරු පුවරුව භාවිතා කරන්නේ කෙසේද? .

මැක් ඕඑස් එක්ස් දිවියාගේ සිට එස්එස්එච් යතුරු ගබඩා කිරීමට යතුරු පුවරුව සහාය දී ඇති බව මට වැටහේ. කරුණාකර මෙම අංගය ක්‍රියාත්මක වන්නේ කෙසේදැයි යමෙකුට පැහැදිලි කළ හැකිද?

එමනිසා එහි ශබ්දය මඟින් මෙම විධානය භාවිතා කර ඔබේ SSH යතුරු Keychain වෙත ආයාත කළ හැකිය:

$ ssh-add -K [path/to/private SSH key]

ඔබේ යතුරු ආරම්භයේ සිට ආරම්භය දක්වා පැවතිය යුතුය.

ඔබ ඔබේ මැක් නැවත ආරම්භ කරන සෑම විටම, ඔබගේ යතුරුපුවරුවේ ඇති සියලුම SSH යතුරු ස්වයංක්‍රීයව පූරණය වේ. යතුරුපුවරු ප්‍රවේශ යෙදුමේ යතුරු මෙන්ම විධාන රේඛාවේ සිට යතුරු ඔබට දැකගත හැකිය:

  ssh-add -l

මූලාශ්‍රය: සුපිරි පරිශීලක - SSH යතුරු සමඟ මැක් ඕඑස් එක්ස් යතුරු පුවරුව භාවිතා කරන්නේ කෙසේද?


ඇත්තටම? ලිනක්ස් හි මට මෙම ගැටළුව නොමැත. මම මගේ පරිගණකය නැවත ආරම්භ කරන සෑම අවස්ථාවකම "ssh-add my_key" කළ යුතුද?
ア レ ッ ク ス

2
Lex ඇලෙක්ස් පිළිතුර පැහැදිලි කරන පරිදි, නියෝජිතයා ස්වයංක්‍රීයව එකතු කරයි ~/.ssh/id_rsa. මම හිතන්නේ මෙය ඔබගේ යතුරු ගොනුවේ ලිනක්ස් වල පිහිටීමයි. ඔබ සම්මත ssh යතුරු නියෝජිතයා භාවිතා නොකිරීමටද හැකිය. වෙනස් හැසිරීම් ඇති විය හැකි gnome-keyring-deemon වැනි තවත් ඒවා තිබේ.
පැට්‍රික්

නමුත් මැක්හි එය "id_rsa_mac" ලෙස නම් කර ඇත. නියෝජිතයා එය ස්වයංක්‍රීයව එකතු කරන්නේ කෙසේද?
ア レ ッ ク ス

At පැට්‍රික්: සම්භාව්‍යය ssh-agentකිසියම් යතුරු ස්වයංක්‍රීයව එකතු කරයිදැයි මට විශ්වාස නැත . මගේ මතය අනුව එය ssh-addසම්මත ස්ථාන කියවීම හෝ sshඔබ නියෝජිතයා භාවිතා නොකරන්නේ නම් සේවාදායකයා ය.
Pavel Šimerda

5
කුඩා පැත්තෙන්, ඔබේ ssh-add විධානය -K ධජය හඳුනා නොගන්නේ නම්, ඔබ බොහෝ විට භාවිතා කරන්නේ ssh-add හි මැක්පෝර්ට්ස් අනුවාදයයි ... ඔබට ssh-add හි OSX අනුවාදයට සම්පූර්ණ මාර්ගය නියම කිරීමෙන් මැක්පෝර්ට්ස් අනුවාදය මඟ හැරිය හැක. මේ වගේ:/usr/bin/ssh-add -K /path/to/private/key
ක්‍රිස්ආර්

22

මෙම ssh-agentයනු තාවකාලිකව යතුරු ගබඩා එම සැසිවාරයට සේවා සඳහා පරිශීලක.

SSH නියෝජිතයාගේ ප්‍රධාන පරමාර්ථය වන්නේ මුරපදයක් භාවිතයෙන් සුරක්ෂිත යතුරක පැහැදිලි පිටපත මතක තබා ගැනීමයි. වෙනත් වචන වලින් කිවහොත්, යතුර මුරපදයක් භාවිතයෙන් සංකේතාත්මක තැටියේ ගබඩා කර ඇති අතර මුරපදය ලබා දීම සඳහා යතුරු භාවිතයේ හිමිකරු ssh-addහෝ සමහර GUI මෙවලමක් ඇති අතර සැසිය පිටවන තුරු හෝ පරිශීලකයා පැහැදිලිවම ඉවත් කිරීමට ඉල්ලා සිටින තෙක් එය මතක තබා ගැනීමට නියෝජිතයාට උපදෙස් දෙයි.

ඔබ මුරපදයක් භාවිතා නොකරන්නේ නම් සහ ඔබ නියෝජිත යොමු කිරීම භාවිතා නොකරන්නේ නම් (එය බොහෝ අරමුණු සඳහා අනාරක්ෂිත ය), ඔබට නියෝජිතයා කිසිසේත් අවශ්‍ය නොවේ . ඕනෑම SSH සේවාදායකයෙකුට යතුර තැටියේ සිට සම්මත ස්ථානයකින් හෝ පැහැදිලිව නිශ්චිතව කියවිය හැකිය.

අත්පොත පිටුවේ සම්මත ස්ථාන ලැයිස්තුගත කර ඇත ssh(1):

පෙරනිමිය 1 වන ප්‍රොටෝකෝලය සඳහා ~ / .ssh / අනන්‍යතාවය වන අතර ප්‍රොටෝකෝලය 2 සඳහා ~ / .ssh / id_dsa, ~ / .ssh / id_ecdsa, ~ / .ssh / id_ed25519 සහ ~ / .ssh / id_rsa වේ.

ප්‍රමිතිගත නොවන ස්ථාන භාවිතා කරන විට, ඔබට එකම අත්පොතේ විස්තර කර ඇති -iස්විචය sshහෝ ඔබ භාවිතා කරන SSH සේවාදායකයේ අදාළ විකල්පය භාවිතා කළ හැකිය.


4
+1 භාවිතා ssh-agent
නොකිරීමට

9

දී සියෙරා :

UseKeychain භාවිතා කරන්න . (මම මෙය උත්සාහ කර නැති නමුත් එය වඩාත් නිවැරදි විසඳුම ලෙස පෙනේ.)

හෝ

ssh-add -K /your/key
echo ssh-add -A | cat >> ~/.bash_profile

නැතහොත් එකතු කිරීම වෙනුවට ප්ලස්ට් ගොනුවක් සාදන්න~/.bash_profile .

වියාචනය: අනෙක් අය සඳහන් කර ඇති පරිදි, යතුරු පුවරුවේ ssh මුරපද ගබඩා කිරීම කෙතරම් ආරක්ෂිතදැයි මම නොදනිමි.


මම ඉහත සියලු ක්‍රම අත්හදා බැලුවද මෙය ක්‍රියාත්මක වන්නේ එක් ක්‍රමයක් පමණි. ඔබට ස්තුතියි!
ඩුආන්ක්ස්

1

මැක් නැවත පණගැන්වීමෙන් පසු ssh අනන්‍යතා සක්‍රීය කිරීමට මට මේවා උපකාර කරයි.

OS අනුවාදය: MacOS කැටලිනා අනුවාදය 10.15.2

  1. යතුරු පුවරුව සඳහා අවශ්‍ය වන නිසා ඔබ එය නිර්මාණය කරන විට ඔබේ ssh- යතුරට මුරපදය ඇති බවට වග බලා ගන්න. ඔබ සතුව නොමැති නම්, මෙම විධානය ක්‍රියාත්මක කිරීමෙන් ඔබට ඔබගේ මුරපදය-පුද්ගලික යතුරු එක වෙනස් කිරීමට තවමත් හැකිය :ssh-keygen -p -f ~/.ssh/<.your-privatekey-filename.>

  2. මෙම විධානය ක්‍රියාත්මක කිරීමෙන් යතුරු පුවරුවට ඔබේ ssh පුද්ගලික යතුර එක් කරන්න: ssh-add -K ~/.ssh/<.your-privatekey-filename.>

  3. මෙම විධානය ක්‍රියාත්මක කිරීමෙන් යතුරු පුවරුවේ ඇති සියළුම ssh-privatekey ඔබේ ssh-agent වෙත එක් කරන්න: ssh-add -A

  4. ඔබගේ දේ සත්‍යාපනය කරන්න ssh-add -l, සියල්ල හොඳින් ක්‍රියාත්මක වන්නේ නම් ඔබ යම් ප්‍රති results ල දැකිය යුතුය.

ඔබ පරිගණකය නැවත පණගැන්වීමෙන් පසු ඔබේ ssh අනන්‍යතාවය නැති වී ඇති බව ඔබට පෙනෙනු ඇත (ප්‍රති ssh-add-lresult ලයක් ලෙස කිසිදු අනන්‍යතාවයක් හමු නොවීය ...). ඔබට එය ක්‍රම දෙකකින් නිවැරදි කළ හැකිය:

  1. ssh-add -Aඔබගේ පර්යන්ත පැතිකඩට එක් කරන්න , උදාහරණයක් ලෙස ඔබ zsh එකතු කිරීම ssh-add -A to ~/.zshrcහෝ ඔබගේ පැතිකඩ වින්‍යාස ගොනුවක් භාවිතා කරන්නේ නම් .
  2. ගොනුව ~ / library / launchchagents / com. <.Uusename.>. <. විධානයේ නම.> . උදා: c om.myusername.ssh.plist , ස්ක්‍රිප්ට් විස්තර:

    Com.user.loginscript ProgramArguments ssh-add -A RunAtLoad ලේබලය

  3. සෑම නැවත පණගැන්වීමක්ම මෙම ස්ක්‍රිප්ට් පූරණය කිරීමට දියත් කළ අයට කියන්න: launchctl load ~/Library/LaunchAgents/com.myusername.ssh.plist.

  4. කෙසේ හෝ ඔබගේ පරිශීලක නාමය කුමක්දැයි ඔබ නොදන්නේ නම්. idඔබගේ වර්තමාන පරිශීලක නාමය බැලීමට ඔබට සරල ධාවන විධානයක් කළ හැකිය.
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.