මුරපදය අඩු SSH පිවිසුම සකසන්නේ කෙසේද?


268

සෑම විටම මුරපදය ඇතුළත් නොකර ssh හරහා දුරස්ථයකට ප්‍රවේශ වීමට මට අවශ්‍යය.

  • මම එය සකසන්නේ කෙසේද?
  • මුරපද අඩු සැසියක් ක්‍රියාත්මක කිරීමට වෙනත් විධානයක් අවශ්‍යද?

ඔබ opensh භාවිතා කරනවාද? (එසේ නම් එය පහසු ය;))
රින්ස්වින්ඩ්

In රින්ස්වින්ඩ්, OpenSSH දැනටමත් පූර්ව ස්ථාපනය කර ඇති විට හිමිකාර අනුවාදය ලබා ගැනීමට මා කරදර වන්නේ ඇයි?
ඔක්ස්විවි

15
මම උපකල්පන නොකිරීමට උත්සාහ කරමි;)
රින්ස්වින්ඩ්

1
E කෙවින්, කරුණාකර ඔබම පැහැදිලි කර ගන්න. අපි කතා කරන්නේ මුරපදයකින් තොරව ssh-ing ගැන වන අතර එය සාමාන්‍යයෙන් හොඳ පුරුද්දකි . ඔබ අදහස් කරන්නේ මූල කවචයකට ඇතුල් වීමද? එය මෙම ප්‍රශ්නයෙන් ආවරණය නොවේ.
ඔක්ස්විවි

X ඔක්ස්විවි: කණගාටුයි, මෙය මූල පිවිසුම ඉලක්ක කරගත් රවින්ද්‍රගේ පිළිතුරට අදහස් දැක්වීමක් විය යුතුව තිබුණි.
කෙවින්

Answers:


280

පිළිතුර

මෙම විධානයන් ක්‍රියාත්මක කරන්න:

ssh-keygen

එවිට ඔබට නව යතුර ඔබේ සේවාදායකයට පිටපත් කිරීමට අවශ්‍ය වනු ඇත :

ssh-copy-id user@host
## or if your server uses custom port no:
ssh-copy-id "user@host -p 1234"

යතුර පිටපත් කිරීමෙන් පසුව, යන්ත්‍රය සාමාන්‍ය පරිදි ssh කරන්න:

ssh user@host

ඔබ විසින් විධාන ක්‍රියාත්මක කළ විශේෂිත යන්ත්‍රයෙන් මුරපදයක් ඇතුළත් නොකර දැන් ඔබට පිවිසිය හැකිය.

උදාහරණයක්

not-marco@rinzwind-desktop:~$ ssh-keygen 
Generating public/private rsa key pair.
Enter file in which to save the key (/home/not-marco/.ssh/id_rsa): 
Created directory '/home/not-marco/.ssh'.
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /home/not-marco/.ssh/id_rsa.
Your public key has been saved in /home/not-marco/.ssh/id_rsa.pub.
The key fingerprint is:
b1:25:04:21:1a:38:73:38:3c:e9:e4:5b:81:e9:ac:0f not-marco@rinzwind-desktop
The key's randomart image is:
+--[ RSA 2048]----+
|.o= . oo.        |
|*B.+ . .         |
|*=o .   o .      |
| = .     =       |
|. o     S        |
|E.               |
| o               |
|  .              |
|                 |
+-----------------+

not-marco@rinzwind-desktop:~$ ssh-copy-id not-marco@server
not-marco@server's password: 
Now try logging into the machine, with "ssh 'not-marco@server'", and check in:

  ~/.ssh/authorized_keys

to make sure we haven't added extra keys that you weren't expecting.

පැහැදිලි කිරීම

SSH හරහා ඔබට දැනටමත් ඔබේ සේවාදායකයට සාර්ථකව සම්බන්ධ විය හැකි බව මෙය උපකල්පනය කරයි.

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

  1. මුලින්ම ඔබේ SSH යතුරු පුවරුව ධාවනය කිරීමෙන් ssh-keygenමෙය id_rsaසහ id_rsa.pubගොනුවක් සාදනු ඇත . මෙම pubගොනුව සේවාදායක යනවා දේ, පෞද්ගලික යතුර ( id_rsa) ඔබ සමඟ නගී හා ඔබ හඳුනා ආකාරය දේ වේ.
  2. ඊළඟට ඔබේ යතුර ssh-copy-id user@serverදුරස්ථ පරිශීලකයා සමඟ ප්‍රතිස්ථාපනය කිරීමෙන් සහ සේවාදායක ඩීඑන්එස් නම හෝ අයිපී ලිපිනය සමඟ පොදු යතුර ඔබේ සේවාදායකයට පිටපත් කරන්න . එය ඔබගේ SSH මුරපදය සඳහා විමසනු ඇත, එය ඇතුලත් කරන්න, සියල්ල සාර්ථකව සම්පූර්ණ වුවහොත් ඔබට ssh user@serverමුරපදයක් අවශ්‍ය නොවී යන්ත්‍රයට පිවිසිය හැකිය .

යොමුව


11
X ඔක්ස්විවි මෙම පිළිතුර එය කිරීමට වඩාත් නිවැරදි ක්‍රමයයි - නමුත් එය දිගු බව පෙනේ. ඔබ කළ යුතු සියල්ල වර්ගය වේ ssh-keygenටයිප් පසුව, තිරය මත වන උපදෙස් අනුගමනය ssh-copy-id user@serverදුරස්ථ යන්ත්රය සමඟ ඔබේ දුරස්ථ පරිශීලක සහ සේවාදායකය සමඟ පරිශීලක වෙනුවට
මාර්කෝ Ceppi

3
මට මෙම දෝෂය ඇතිවිය "යතුර භාවිතයෙන් අත්සන් කිරීමට අපොහොසත් වූ බව නියෝජිතයා පිළිගත්තේය." මෙම ක්‍රියා පටිපාටිය අනුගමනය කිරීමෙන් පසු ප්‍රවේශ වීමට උත්සාහ කරන සෑම අවස්ථාවකම. විසඳුම වූයේ දේශීය යන්ත්‍රය මත "> ssh-add" ධාවනය කිරීමයි, දැන් මට අපේක්ෂිත පරිදි දුරස්ථ යන්ත්‍රයට පිවිසිය හැකිය.
jmbouffard

2
ඔබට @server සඳහා අභිරුචි වරාය භාවිතා කිරීමට අවශ්‍ය නම්, ඔබ මෙය කළ යුත්තේ : ssh-copy-id "not-marco@127.0.0.1 -p 1234".
s3m3n

In රින්ස්වින්ඩ්: මෙයින් අදහස් කරන්නේ මා විසින් මුරපද සත්‍යාපනය අක්‍රීය කර යතුරු සත්‍යාපනය සඳහා පමණක් ඉඩ දුන්නොත් නොදන්නා සේවාදායකයකු / යන්ත්‍රයකින් මගේ සේවාදායකයට සත්‍යාපනය කළ නොහැකි බවයි. දන්නා / වින්‍යාස කරන ලද සේවාදායකයින් සඳහා සේවාදායකයට සන්නිවේදනය කිරීම සඳහා ජනනය කරන ලද පුද්ගලික යතුර භාවිතයෙන් නොදන්නා යන්ත්‍රයකින් ප්‍රවේශ වීමට ඉඩ දිය හැකි ක්‍රමයක් තිබේද? මම අදහස් කළේ, මෙම පුද්ගලික යතුර අතේ ගෙන යා හැකි සහ හදිසි අවශ්‍යතා වලදී වෙනත් යන්ත්‍රවලින් සේවාදායකයට මා සත්‍යාපනය කිරීමට භාවිතා කළ හැකිද ??
රාජත් ගුප්තා

6
නමුත් සේවාදායකයා තවමත් මුරපදය ඉල්ලා සිටී ,,,
Lerner Zhang

35

පහත දැක්වෙන විධානයන් ටයිප් කරන්න:

  1. ssh-keygen

    Enterඔබට විමසුම ලැබෙන තුරු යතුර ඔබන්න

  2. ssh-copy-id -i root@ip_address

    (එය වරක් සත්කාරක පද්ධතියේ මුරපදය ඉල්ලනු ඇත)

  3. ssh root@ip_address

දැන් ඔබට මුරපදයකින් තොරව ප්‍රවේශ විය හැකි විය යුතුය.


26

මම සාමාන්‍යයෙන් මෙය කරන ආකාරය පහත පරිදි වේ:

ssh-keygen -t rsa

(මුරපදයක් ඉල්ලා සිටින විට එය හිස්ව තබන්න)

ඉන්පසු: cat ~/.ssh/id_rsa.pub | ssh username@hostname 'cat >> .ssh/authorized_keys'

(මේ සඳහා .ssh ෆෝල්ඩරය ඉලක්කගත සත්කාරක නාමයේ නිවාස නාමාවලියෙහි තිබිය යුතුය, එහි බලයලත්_කයිස් ගොනුව තිබිය යුතුය)

ඇත්ත වශයෙන්ම, පරිශීලක නාමය අපේක්ෂිත පරිශීලක නාමය සමඟ ආදේශ කරන්න, සහ සත්කාරක නාමය අපේක්ෂිත සත්කාරක නාමය හෝ IP ලිපිනය සමඟ ආදේශ කරන්න

ඊට පසු, ඔබ පුරුදු වූවාක් මෙන් එම පෙට්ටියට SSH කරන්න.


කුමක් ගැන ද touchහා chmodRinzwind පිළිතුරේ විධානය?
ඔක්ස්වි

7
ඔබට .ssh/authorized_keysගොනුව 0600 ට chmod කිරීමට අවශ්‍ය වේ, නැතහොත් මෙය ක්‍රියා නොකරනු ඇත
Marco Ceppi

මෙය සැබවින්ම උපකාරී වූයේ මගේ සේවාදායකයේ root සඳහා වැඩ කිරීමට ssh-copy-id ලබා ගැනීමට නොහැකි වූ බැවිනි. backuppc (හෝ වෙනත් ඕනෑම ඩීමන්) වෙනත් යන්ත්‍රයක් මතට ලිස්සා යා යුතු තත්වයේදී එය මුල් විය යුතුය.
ඇඩම්

18

මම සාමාන්‍යයෙන් ඒ සඳහා භාවිතා කරමි sshpass, එය ස්ථාපනය කර sudo apt-get install sshpassමේ ආකාරයට භාවිතා කරමි

sshpass -p 'password' ssh your_username@your_server

6
Ssh යතුරු භාවිතා නොකරන්නේ ඇයි?
enzotib

1
එය "ඇයි නැත්තේ" තත්වයක් නොවේ, යතුරු එකතු නොකර එය තවමත් පරිපූර්ණව ක්‍රියා කරයි, එය මා පවසන තවත් ක්‍රමයකි.
un නෝ පෙරෙයිරා

Sshpass පිළිබඳ තොරතුරු වලට ස්තූතියි, මීට පෙර කවදාවත් අසා නැත.
පැන්තර්

8
SSH යතුරු යනු ප්‍රශ්නයට “නිවැරදි” පිළිතුර වන නමුත් sshpassඔබට දුරස්ථ සේවාදායකයේ සත්‍යාපන ක්‍රමය වෙනස් කළ නොහැකි අවස්ථාවන්හිදී එය ඉතා ප්‍රයෝජනවත් වේ.
ජාකොබ් ක්‍රෝල්

9
මෙය ඉතා භයානක ය, ඔබ bash_history හෝ ඔබ සම්බන්ධ කරන ධාරකයන් සඳහා සරල මුරපද කුමක් වුවත් තබා ගන්න ..
kappa

11

මුරපද සත්‍යාපනය අක්‍රීය කරන්න

SSH සේවාදායකයන් ඇති බොහෝ දෙනෙක් දුර්වල මුරපද භාවිතා කරන හෙයින්, බොහෝ සබැඳි ප්‍රහාරකයින් SSH සේවාදායකයක් සොයනු ඇත, පසුව අහඹු ලෙස මුරපද අනුමාන කිරීම ආරම්භ කරයි. ප්‍රහාරකයෙකුට පැයක් තුළ මුරපද දහස් ගණනක් උත්සාහ කළ හැකි අතර, ප්‍රමාණවත් කාලයක් ලබා දී ඇති ශක්තිමත්ම මුරපදය පවා අනුමාන කරන්න. නිර්දේශිත විසඳුම වන්නේ මුරපද වෙනුවට SSH යතුරු භාවිතා කිරීමයි. සාමාන්‍ය SSH යතුරක් ලෙස අනුමාන කිරීම දුෂ්කර වීමට නම්, මුරපදයක අහඹු අකුරු සහ අංක 634 ක් අඩංගු විය යුතුය. ඔබට සැමවිටම SSH යතුරක් සමඟ ඔබේ පරිගණකයට පිවිසිය හැකි නම්, ඔබ මුරපද සත්‍යාපනය සම්පූර්ණයෙන්ම අක්‍රිය කළ යුතුය.

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

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

මුරපද සත්‍යාපනය අක්‍රිය කිරීමට, ඔබගේ sshd_config ගොනුවේ පහත පේළිය සොයන්න:

#PasswordAuthentication yes

මේ ආකාරයට පෙනෙන රේඛාවකින් එය ප්‍රතිස්ථාපනය කරන්න:

PasswordAuthentication no

ඔබ ගොනුව සුරකින විට සහ ඔබේ SSH සේවාදායකය නැවත ආරම්භ කළ පසු, ඔබ ලොග් වූ විට මුරපදයක් ඉල්ලා නොසිටිය යුතුය.

https://help.ubuntu.com/community/SSH/OpenSSH/Configuring#disable-password-authentication


2
මෙය වඩාත් මූලික නිවැරදි පිළිතුර වන නමුත් ආරක්ෂාවට හොඳයි! Root පිවිසුම අක්‍රීය කිරීම තවත් හොඳ එකක්
FreeSoftwareServers

කරන්නේ PasswordAuthentication noසියලු භාවිතා කරන පරිශීලකයන් හට බලපෑම්? එසේ නොවේ නම්, මම එය සාමාන්‍ය පරිශීලකයින් සඳහා ක්‍රියා විරහිත කර එය පරීක්‍ෂා කරන අතරතුර root සඳහා නොවෙනස්ව තබන්නේ කෙසේද? මට එය මුළා කර සම්පූර්ණයෙන්ම වසා දැමීමට අවශ්‍ය නැත.
ආදම්

ඔබට එය නැවත වෙනස් කළ හැකි වන පරිදි ssh සැසියක් විවෘතව තබන්න. ඔබට මුරපද අක්‍රීය කිරීමට අවශ්‍යය. ඔව්, ඔබට එය ෆුබාර් කළ හැකිය. එපා;)
Thufir

Ssh අතරතුර, මට දෝෂයක් Permission denied (publickey).තිබේ PasswordAuthentication no. මා කුමක් කළ යුතුද? මම PasswordAuthentication noවෙනත් සත්කාරක සමාගමක වෙනස් වෙනවාද?
පැරිසාන්

9

මෙම විසඳුම විශේෂයෙන් භාවිතා කරන්නන් සඳහා Windows සඳහා ssh මත වලාකුළු රූප ඇතුළු තම දුරස්ථ යන්ත්ර බවට AWS වලාකුළු හා අධ්යයන පොදු සහතික පත්ර වලාකුළු

වියාචනය

අ.පො.ස. හි නව යොදවා ඇති vm රූප දුරස්ථව පිවිසීම සඳහා මෑතකදී මෙම විසඳුම භාවිතා කරන ලදී.


භාවිතා කරන මෙවලම්:

  1. puttygen puttygen බාගත කිරීම
  2. winscp wincp බාගත කිරීම

ඉටු කිරීමට පියවර:

  1. පුටිජන් භාවිතයෙන් පොදු / පෞද්ගලික යතුරු යුගලයක් ජනනය කරන්න.
  2. වලාකුළු හෝ දුරස්ථ ස්ථානයක ඔබේ සේවාදායකයට පොදු යතුර උඩුගත කරන්න.

එය කරන්නේ කෙසේද:

1. යතුරක් / යුගලයක් ජනනය කරන්න හෝ පවතින පුද්ගලික යතුර භාවිතා කරන්න

ඔබට පෞද්ගලික යතුරක් තිබේ නම්:

විවෘත කරන්න puttygen, පැටවුම් බොත්තම ඔබා ඔබගේ පුද්ගලික යතුරු ( *.pem) ගොනුව තෝරන්න.


ඔබට පුද්ගලික යතුරක් නොමැති නම්:

  • විවෘත puttygen,
  • පරාමිති අංශය තුළ අපේක්ෂිත යතුරු වර්ගය SSH2 DSA (ඔබට RSA හෝ DSA භාවිතා කළ හැකිය) තෝරන්න . මුරපද ක්ෂේත්‍රය හිස්ව තැබීම වැදගත්ය.
  • generate(පොදු / පෞද්ගලික) යතුරු යුගලයක් ජනනය කිරීමට උපදෙස් ඔබන්න .

නියැදි යතුරු උත්පාදනය pic

(මූලාශ්‍ර 1 සිට, පහත සබැඳිය)

2. නව 'බලයලත්_කයිස්' ගොනුවක් සාදන්න (සමඟ notepad)

පුට්ටි යතුරු උත්පාදක යන්ත්රයේ "OpenSSH Authorized_keys ගොනුවට ඇලවීම සඳහා පොදු යතුර" වෙතින් ඔබේ පොදු යතුරු දත්ත පිටපත් කර යතුරු දත්ත ගොනුවට අලවන්න authorized_keys.


මෙම ගොනුවේ ඇත්තේ එක් පෙළ පේළියක් පමණක් බවට වග බලා ගන්න.


3. ලිනක්ස් සේවාදායකයට යතුර උඩුගත කරන්න

  • WinSCP විවෘත කරන්න,
  • SFTP ගොනු ප්‍රොටෝකෝලය තෝරන්න සහ ඔබේ ssh අක්තපත්‍ර සමඟ ප්‍රවේශ වන්න.
  • සාර්ථක වූ විට, ඔබගේ දුරස්ථ යන්ත්‍රයේ නිවාස නාමාවලි ව්‍යුහය ඔබට පෙනේ.

දුරස්ථ යන්ත්‍රයෙන් බලයලත්_කයිස් ගොනුව නිවාස නාමාවලියට උඩුගත කරන්න.


4. නිසි අවසර ලබා දෙන්න

.sshනාමාවලිය සාදන්න (නොපවතී නම්)


authorized_keysගොනුව .sshඩිරෙක්ටරියට පිටපත් කරන්න .
(මෙය පවතින ඕනෑම authorized_keysගොනුවක් ප්‍රතිස්ථාපනය කරයි , මෙය සැලකිල්ලට ගන්න).

ගොනුව පැවතුනේ නම්, පවතින ගොනුවට මෙම ගොනුවේ අන්තර්ගතය එක් කරන්න.


අවසර සැකසීමට විධාන ක්‍රියාත්මක කරන්න:

sudo chmod 700 .ssh && chmod 600 .ssh/authorized_keys

දැන් ඔබට sshසෑම විටම අක්තපත්‍ර ඇතුළත් නොකර දුරස්ථ යන්ත්‍රයට පිවිසිය හැකිය .

වැඩිදුර කීයවීම:


5

ඔබ පොදු / මිල යතුරු යතුරු පුවරුවක් සාදා අපගේ අලුතින් සාදන ලද පොදු යතුර භාවිතා කර ලොග් වුවහොත්, ඔබට ඔබගේ මුරපදය ටයිප් කිරීමට අවශ්‍ය නොවනු ඇත. ඔබගේ යතුරු මුද්ද සහ / හෝ ssh නියෝජිතයාගේ වින්‍යාසය මත පදනම්ව මුරපදයකින් ඔබේ යතුර ආරක්ෂා කිරීමට ඔබට අවශ්‍ය විය හැකිය.

මෙන්න ඔබ සඳහා කෙටි කෙටිකතා වලින් එකකි . මෙම ක්‍රමයේ ආරක්ෂාවට ඉතා වැදගත් වන්නේ ජනනය කරන ලද පුද්ගලික යතුර පෞද්ගලිකව පැවතීමයි! ඔබ එය කිසි විටෙකත් කිසිවෙකු සමඟ බෙදා නොගත යුතුය.

මෙම විධානය මඟින් සාධාරණ ශක්තිමත් යතුරක් ජනනය කරයි ~/.ssh/:

ssh-keygen -b 4096

දී ~/.ssh/ඔබ ඔබේ පොදු යතුර සොයා id_rsa.pub. authorized_keysප්‍රවාහනය කළ හැකි මාධ්‍යයක් (පෙන් ඩ්‍රයිව්) හරහා ප්‍රවාහනය කිරීමෙන් හෝ සේවාදායකයේ මුරපද සත්‍යාපනය කෙටි කලකින් සක්‍රීය කිරීමෙන් එහි අන්තර්ගතය ඔබේ සේවාදායක ගොනුවට එකතු කළ යුතුය , පසුව එය භාවිතා ssh-copy-id ~/.ssh/id_rsa.pub username@serverකර නැවත අක්‍රීය කරන්න.

ඔබ ඔබේ යතුර ssh-agentමුරපදයකින් සුරක්ෂිත කිරීමට තෝරා ගත්තේ නම් (පළමු පියවරේදී), ඔබට එම pharse දේශීයව සුරක්ෂිත කිරීමට උබුන්ටු යතුර භාවිතා කළ හැකිය, එවිට ඔබට එය නිතරම ටයිප් කිරීමට අවශ්‍ය නොවේ.


3

එකතු කිරීම් කිහිපයක් කිරීමට:

  • පෙරනිමියෙන් මැක් සතුව නැත ssh-copy-id, ඔබට එය ස්ථාපනය කළ යුතුය:

    curl https://raw.github.com/beautifulcode/ssh-copy-id-for-OSX/master/ssh-copy-id.sh -o /usr/local/bin/ssh-copy-id
    chmod +x /usr/local/bin/ssh-copy-id
    

වැඩි විස්තර මෙතැනින් සොයා ගන්න: https://github.com/be Beautifulcode / ssh-copy-id-for-OSX

  • ඔබ වරාය ඉදිරියට යැවීමක් කර ඇත්නම්, විධානය මේ ආකාරයට විය යුතුය:

    ssh-copy-id "not-marco@127.0.0.1 -p 2222"
    

උපුටා දැක්වීම් අවශ්‍ය බව සලකන්න.


3

මුරපදයක් ලබා නොදී දුරස්ථ පිවිසුම / පිටපත

යෙදුම් sshසහ scpදුරස්ථ පිවිසුම් සහ දුරස්ථ පිටපත් සඳහා පිළිවෙලින් මුරපදයක් ලබා නොදී දුරස්ථ ධාරකයෙකු සමඟ සන්නිවේදනය කිරීමට ඔබට ඉඩ සලසයි. මේ සඳහා පහත විස්තර කර ඇති ආකාරයට සත්‍යාපන ක්‍රියාපටිපාටියක් අනුගමනය කිරීම අවශ්‍ය වේ. සේවාදායකයා යන්නෙන් අදහස් කරන්නේ ඔබ වාඩි වී සිටින යන්ත්‍රය සහ සේවාදායකයා යන්නෙන් අදහස් කරන්නේ මුරපදයක් ලබා නොදී ඔබට ලොග් වීමට අවශ්‍ය යන්ත්‍රයයි. සත්‍යාපන ක්‍රියාපටිපාටියේ පියවර:

  1. ඔබේ පරිගණකයේ දැනටමත් සිදු කර නොමැති නම් පුද්ගලික සහ පොදු යතුරු ජනනය කිරීමට ssh-keygen ධාවනය කරන්න. මේවා ගොනු වල ගබඩා කර ඇත $HOME/.ssh.
  2. පොදු යතුරු ගොනුවේ අන්තර්ගතය ගොනුවට $HOME/.ssh/authorized_keysහෝ $HOME/.ssh/authorized_keys2සේවාදායකයට එකතු කරන්න.

සත්‍යාපන ප්‍රොටෝකෝල වර්ග තුනක් තිබේ. Ssh-keygen ධාවනය කිරීමේදී ඔබ වර්ගය නියම කරන්න:

  1. එස්එස්එච් ප්‍රොටොකෝලය අනුවාදය 1, ආර්එස්ඒ 1 : මෙය සුපුරුදු තේරීම වන අතර ගොනු අනන්‍යතාවයේ ප්‍රති results ලයකි (පුද්ගලික යතුර, chmod 0700මෙම ගොනුව අන් අයට කියවිය නොහැකි බව සහතික කිරීමට ගත යුතුය ) සහ අනන්‍යතා පබ් (පොදු යතුර).
  2. එස්එස්එච් ප්‍රොටොකෝලය අනුවාදය 1, ආර්එස්ඒ : මෙය ධාවනය කිරීමෙන් ලබා ගන්නා ssh-keygen -t rsaඅතර ලිපිගොනු id_rsa(පුද්ගලික යතුර) සහ id_rsa.pub(පොදු යතුර)
  3. එස්එස්එච් ප්‍රොටොකෝලය අනුවාදය 1, ඩීඑස්ඒ : මෙය ධාවනය කිරීමෙන් ලබා ගන්නා ssh-keygen -t dsaඅතර ලිපිගොනු id_dsa(පුද්ගලික යතුර) සහ id_dsa.pub(පොදු යතුර)

Ssh-keygen ධාවනය කිරීමේදී ඔබට පෙරනිමි පිළිතුරු මත විශ්වාසය තැබිය හැකිය (ඔබ මුරපදයක් ලබා නොදෙන බව අඟවයි). මෙමඟින් සම්පූර්ණ සැකසුම සරල මෙන්ම අනාරක්ෂිත වේ.

Ssh සඳහා විකල්පයක් මඟින් භාවිතා කළ යුතු යතුරු වර්ගය ඔබට නියම කළ හැකිය ; RSA1 යතුරු ssh -1භාවිතා කිරීමට බල කරයි (ප්‍රොටෝකෝලය අනුවාදය 1), නමුත් RSA හෝ DSA යතුරු පමණක් උත්සාහ කිරීමට ssh ට බල කරයි (ප්‍රොටොකෝලය අනුවාදය 2). පහත උදාහරණ වලදී, අපි ඔබට වඩා නම්‍යශීලී බවක් ඇති දුරස්ථ ධාරකයේ RSA1 සහ DSA යතුරු ජනනය කර ස්ථාපනය කරමු . ඔබේ ඩිරෙක්ටරියේ රේඛාව සමඟ වින්‍යාස ගොනුවක් සෑදිය හැකියssh -2.ssh

Protocol 1,2

මෙමඟින් ssh විසින් RSA / DSA (ප්‍රොටොකෝලය අනුවාදය 2) ට පෙර RSA1 (ප්‍රොටෝකෝලය අනුවාදය 1) සම්බන්ධතාවයක් උත්සාහ කරයි .

RSA1 යතුරු භාවිතා කිරීම

remote=user@remotehost   # fill in correct user and remotehost names
cd $HOME/.ssh
# create .ssh on remote host if it is non-existing:
ssh $remote 'if [ ! -d .ssh ]; then mkdir .ssh; fi' 
# copy RSA1 key: 
scp identity.pub ${remote}:.ssh
ssh $remote "cd .ssh; cat identity.pub >> authorized_keys"

DSA යතුරු භාවිතා කිරීම

remote=user@remotehost   # fill in correct user and remotehost names
cd $HOME/.ssh
# create .ssh on remote host if it is non-existing:
ssh $remote 'if [ ! -d .ssh ]; then mkdir .ssh; fi' 
# copy DSA key: 
scp id_dsa.pub ${remote}:.ssh
ssh $remote "cd .ssh; cat id_dsa.pub >> authorized_keys2"

යතුරු ජනනය කිරීමේදී මුරපදයක් භාවිතා නොකළේ නම් ඔබ කළ යුත්තේ මෙයයි. ඔබ දුරස්ථ ssh ධාවනය $ විසින් ඇති සම්බන්ධය පරීක්ෂා ඔබ මුරපදයක් ලබා (ඔබ භාවිතා කිරීමට අවශ්ය විය හැක තොරව පිවිසිය හැකි නම් බලන්න පුළුවන් -1හෝ -2සඳහා විකල්ප ලෙස ssh ). ක්‍රියා පටිපාටිය, ඔබට පිවිසීමට අවශ්‍ය ඕනෑම යන්ත්‍රයක් සඳහා නැවත නැවතත් කළ හැකිය.

ඔබ මුරපදයක් භාවිතා කළේ නම්, ඔබට ssh-agentවිශේෂ කවචයක් ආරම්භ කිරීම සඳහා වැඩසටහන ක්‍රියාත්මක කිරීමට සිදුවනු ඇත , ඉන්පසු ssh-addඔබේ යතුරු / මුරපද සංයෝජනය ලියාපදිංචි කිරීම sshd. වැඩි විස්තර සඳහා මෙම වැඩසටහන් සඳහා man පිටු බලන්න.

මුරපද රහිත සම්බන්ධතා ස්වයංක්‍රීය කිරීම සඳහා පිටපතක්: ssh-no-password.sh

#!/bin/sh

# create ssh connections without giving a password

if [ $# -lt 1 ]; then
  echo Usage: $0 username@remotehost
  exit
fi
remote="$1"  # 1st command-line argument is the user@remotehost address
this=$HOST   # name of client host

# first check if we need to run ssh-keygen for generating
# $HOME/.ssh with public and private keys:
if [ ! -d $HOME/.ssh ]; then
  echo "just type RETURN for each question:" # no passphrase - unsecure!!
  # generate RSA1, RSA and DSA keys:
  echo; echo; echo
  ssh-keygen
  echo; echo; echo
  ssh-keygen -t rsa
  echo; echo; echo
  ssh-keygen -t dsa
else
  # we have $HOME/.ssh, but check that we have all types of
  # keys (RSA1, RSA, DSA):
  if [ ! -f $HOME/.ssh/identity ]; then
     # generate RSA1 keys:
     echo "just type RETURN for each question:" # no passphrase - unsecure!!
     ssh-keygen
  fi
  if [ ! -f $HOME/.ssh/id_rsa ]; then
     # generate RSA keys:
     echo "just type RETURN for each question:" # no passphrase - unsecure!!
     ssh-keygen -t rsa
  fi
  if [ ! -f $HOME/.ssh/id_rsa ]; then
     # generate DSA keys:
     echo "just type RETURN for each question:" # no passphrase - unsecure!!
     ssh-keygen -t dsa
  fi
fi


cd $HOME/.ssh

if [ ! -f config ]; then
  # make ssh try ssh -1 (RSA1 keys) first and then ssh -2 (DSA keys)
  echo "Protocol 1,2" > config
fi

# copy public keys (all three types) to the destination host:

echo; echo; echo
# create .ssh on remote host if it's not there:
ssh $remote 'if [ ! -d .ssh ]; then mkdir .ssh; fi' 
# copy RSA1 key: 
scp identity.pub ${remote}:.ssh/${this}_rsa1.pub
# copy RSA key:
#scp id_rsa.pub ${remote}:.ssh/${this}_rsa.pub
# copy DSA key:
scp id_dsa.pub ${remote}:.ssh/${this}_dsa.pub
# make authorized_keys(2) files on remote host:

echo; echo; echo
# this one copies all three keys:
#ssh $remote "cd .ssh; touch authorized_keys authorized_keys2; cat ${this}_rsa1.pub >> authorized_keys; cat ${this}_rsa.pub >> authorized_keys2; cat ${this}_dsa.pub >> authorized_keys2;"
# this one copies RSA1 and DSA keys:
ssh $remote "cd .ssh; touch authorized_keys authorized_keys2; cat ${this}_rsa1.pub >> authorized_keys; cat ${this}_dsa.pub >> authorized_keys2;"

echo; echo; echo
echo "try an ssh $remote"

පිටපත් කළේ: http://folk.uio.no/hpl/scripting/doc/ssh-no-password.html


1

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

මම යතුර ජනනය කර සේවාදායකයට පිටපත් කළ පසු:

ssh-keygen  # change the file to /home/yourname/.ssh/something
ssh-copy-id -i ~/.ssh/something.pub lerner@192.168.20.160

මට තේරුණා ඒක වැඩ කරන්නේ නැහැ කියලා.

පසුව මම ~/.ssh/configසේවාදායකයාගේ ගොනුව පරීක්ෂා කිරීමට ගියෙමි , මම මෙය පහතින් දුටුවෙමි:

Host *
IdentitiesOnly yes

ඉන්පසු මම මෙය ඉහත එකතු කරමි:

Host somename
HostName 192.168.20.160
User lerner
IdentityFile ~/.ssh/something

ඇතුල් වීමෙන් මට ලොග් විය හැකිය ssh somename.

එවිට ඔබට ඔබේ ප්‍රියතම නම් භාවිතා කර ssh යතුරු කිහිපයක් එකතු කළ හැකි අතර, ඔබට අවශ්‍ය වන්නේ ඉහත පේළි හතර වැනි සැකසුම් වින්‍යාස ගොනුවට එක් කිරීම පමණි.

ඔබ පසුව සේවාදායකය සම්බන්ධ කරන විට ඇතුළත් කිරීමට කැමති නම ධාරකය; ධාරක නාමය සේවාදායකයේ අයිපී ය; පරිශීලකයා යනු ඔබ සේවාදායකයට පිවිසෙන පරිශීලක නාමයයි; අනන්‍යතා ගොනුව යනු ඔබ ජනනය කළ යතුර ගබඩා කරන ගොනුවයි.

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.