Rsync සමඟ හැඳුනුම් ගොනුව (id_rsa) සඳහන් කරන්න


224

පර්යේෂණ ආයතනයක් විසින් සත්කාරකත්වය දක්වන අථත්‍ය යන්ත්‍රයක් වන දුරස්ථ සේවාදායකයක නාමාවලියක වරින් වර උපස්ථ සෑදීමට මට අවශ්‍යය. VM වලට ප්‍රවේශ වීම ssh යතුරු හරහා බව ඔවුන් නියම කරයි, මේ සියල්ලම හොඳයි, මෙම සේවාදායකය සඳහා ssh යතුරට rsync යොමු කරන්නේ කෙසේදැයි මට සිතාගත නොහැක.

යතුරු ගොනුව නම් Rsync ට කිසිදු ගැටළුවක් නැත ~/.ssh/id_rsa, නමුත් එය වෙනත් දෙයක් වන විට මට ලැබේ Permission denied (publickey).

Ssh සමඟ මට හැඳුනුම් ගොනුව සමඟ නියම කළ හැකිය -i, නමුත් rsync ට එවැනි විකල්පයක් නොමැති බව පෙනේ.

දේශීය යන්ත්‍රයේ යතුර තාවකාලිකව ගෙනයාමට මම උත්සාහ කර ඇත ~/.ssh/id_rsa, නමුත් ඒ හා සමානව ක්‍රියා නොකරයි.

tl; dr

ඔබට rsync සමඟ හැඳුනුම් ගොනුවක් නියම කළ හැකිද?


1
sudo rsyncකිසියම් හේතුවක් නිසා තමන්ගේම ssh යතුරු භාවිතා නොකරන, කිරීමටද ප්‍රයෝජනවත් වේ.
ijoseph

1
ජොයිසෙෆ් හරියටම, rsync -aAP "sudo -u user ssh" user@server:dir local_dirමූල ලෙස ධාවනය වන ක්‍රෝන් ස්ක්‍රිප්ට් වලින් සමමුහුර්ත කිරීමේදී මම භාවිතා කරමි
මාටින් පෙකා

Answers:


386

'-E' විකල්පය හරහා ඔබට නිශ්චිත ssh විධානය නියම කළ හැකිය:

rsync -Pav -e "ssh -i $HOME/.ssh/somekey" username@hostname:/from/dir/ /to/dir/

බොහෝ ssh පරිශීලකයින්ට ඔවුන්ගේ ~ / .ssh / config ගොනුව ගැන නුහුරු ය. වින්‍යාස ගොනුව හරහා ඔබට ධාරකයකට පෙරනිමි සැකසුම් නියම කළ හැකිය.

Host hostname
    User username
    IdentityFile ~/.ssh/somekey

දිගුකාලීනව ~ / .ssh / config ගොනුව ඉගෙන ගැනීම වඩාත් සුදුසුය.


1
Ssh ප්‍රවාහනයේ වාචික භාවය වැඩි කිරීමට උත්සාහ කරන්න: rsync -e 'ssh -vv' web1: / etc / issue / tmp / issue
Dan Garthwaite

1
අහ්. ඔබ මෙය ස්වයංක්‍රීය කරන්නේ නම් සහ මුරපදයක් සැපයීමට නොහැකි නම් ඔබට අමතර මුරපද රහිත ssh යතුරක් අවශ්‍ය වේ. අන්තර්ක්‍රියාකාරී සැසියක මුරපදයක් නොමැතිව rsync වැඩ කිරීමට ඔබ කැමති නම් ඔබට ssh-agent භාවිතා කිරීමට අවශ්‍ය වනු ඇත.
ඩෑන් ගාර්ත්වයිට්

19
Duuuuuuude! මෙම ~/.ssh/configගොනුව - ඔබ මා වෙනුවෙන් නව විශ්වය විවෘත කර තිබේ!
demaniak

2
~ / .ssh / config මාව දවස බේරුවා, ගොඩක් ස්තූතියි.
smishra

4
~/.ssh/configවැඩ කිරීම සඳහා මගේ නඩුවේදී මට කළ යුතුව තිබුණේchmod 600 ~/.ssh/config
ටොනෝ නැම්

17

SSH පරිශීලක වින්‍යාසය සමඟ මෙය කළ හැකිය: http://www.cyberciti.biz/faq/create-ssh-config-file-on-linux-unix/ මූලික වශයෙන් සංස්කරණය කරන්න ~ / .ssh / config:

$ nano ~/.ssh/config
#Add Hosts below 
Host server1
HostName examplehost.com
User username
Port 22
IdentityFile /path/to/key

$ rsync -e ssh /home/user/directory user@remote.host.net:home/user/directory/

SSH, rsync, භාවිතා කරන ඕනෑම වැඩසටහනක් සඳහා මෙය ක්‍රියා කළ යුතුය


ඔබටත් භාවිතා rsync -e ssh /home/user/directory server1:home/user/directory/කළ හැකිය
ඩෙක්ස්ටර්


4

FYI:

1) පොදු යතුර සෑම විටම පරිශීලකයා දුරස්ථ සේවාදායකයට පිවිසෙන නිවාස නාමාවලියෙහි ඇත, එනම් ඔබ "උපස්ථ" ලෙස ප්‍රවේශ වන්නේ නම් එය පිහිටා ඇත්තේ /home/backup/.ssh/authorized_keys හි ය. ඔබ පිවිසෙන විට පරිශීලක හැඳුනුම්පත ගමනාන්තයේ භාවිතා කරන පොදු යතුර අර්ථ දක්වයි.

විවිධ ආකාර දෙකකින් සම්බන්ධතාවය සිදු කිරීමේදී ඔබට පරිශීලක හැඳුනුම්පත තෝරා ගත හැකිය:

ssh user_id@destination.server
or
ssh -l user_id  destination_server     (<-- that is lower case "L")

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

2) උපස්ථ අරමුණු සඳහා "rsync" වැනි එක් විධානයක් පමණක් ධාවනය කිරීමට සීමා වූ සීමිත යතුරක් නිර්මාණය කිරීම යෝග්‍ය වේ. "Rsnapshot" උපස්ථයට අදාළ හොඳ විස්තරයක් ඇත, එමඟින් වරප්‍රසාද නොලත් පරිශීලක ගිණුමක් සහ "sudo" භාවිතා කර සමස්ත සේවාදායකයම දුරස්ථ උපස්ථ කිරීමට ඔබට ඉඩ සලසයි:

"rsnapshot" කොහොමද

Rsnapshot මඟින් දුරස්ථ හෝ දේශීය සේවාදායක සමූහයක් පහසුවෙන් උපස්ථ කළ හැකි අතර එය උපලේඛනගත හා මධ්‍යගත උපස්ථ සේවාදායකයක් බවට පත් කරයි.

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.