আপনি কীভাবে আরএসসিএন দিয়ে একটি পরিচয় ফাইল ব্যবহার করবেন?


125

আপনি কীভাবে আরএসসিএন দিয়ে একটি পরিচয় ফাইল ব্যবহার করবেন?

এই সিনট্যাক্সটি আমার মনে হয় সংযোগের জন্য একটি পরিচয় ফাইল ব্যবহার করার জন্য আমার আরএসইএনসি ব্যবহার করা উচিত:

rsync -avz -e 'ssh -p1234 -i। / .ssh / 1234-পরিচয়' \
"/ স্থানীয় / দির /" রিমোট ইউজার@22.33.44.55: "/ রিমোট / দির /"

তবে এটি আমাকে একটি ত্রুটি দিচ্ছে:

সতর্কতা: পরিচয় ফাইল। / .Ssh / 1234-পরিচয় অ্যাক্সেসযোগ্য নয়: এই জাতীয় কোনও ফাইল বা ডিরেক্টরি নেই।

ফাইলটি ঠিক আছে, অনুমতিগুলি সঠিকভাবে সেট করা আছে, এসএসএস করার সময় এটি কাজ করে - কেবল আরএসসিএন দিয়ে নয় - কমপক্ষে আমার বাক্য বিন্যাসে। আমি কি ভুল করছি? এটি কি দূরবর্তী মেশিনে পরিচয় ফাইলটি অনুসন্ধান করার চেষ্টা করছে? যদি তা হয় তবে আমি কীভাবে নির্দিষ্ট করব যে আমি আমার স্থানীয় মেশিনে একটি পরিচয় ফাইল ব্যবহার করতে চাই ?

উত্তর:


86

আপনি মেমোরিতে কীটি ব্যবহার করতে ssh-agentএবং ssh-addলোড করতে চাইতে পারেন । sshssh- এজেন্টের কাছ থেকে সনাক্ত করতে পারলে স্বয়ংক্রিয়ভাবে পরিচয়গুলি চেষ্টা করতে পারে। কমান্ড হবে

eval $(ssh-agent) # Create agent and environment variables
ssh-add ~/.ssh/1234-identity

ssh-agentএমন একটি ব্যবহারকারী ডেমন যা মেমরির মধ্যে এনক্রিপ্ট করা এসএসএস কী রাখে। ssh এটি পরিবেশের ভেরিয়েবলের ভিত্তিতে সন্ধান করে যা রান করার সময় ssh-এজেন্ট আউটপুট দেয়। evalএই আউটপুটটি মূল্যায়ন করতে ব্যবহার করা পরিবেশের ভেরিয়েবল তৈরি করে। ssh-addকমান্ড যা কী মেমরি পরিচালনা করে। এজেন্ট ssh- অ্যাড ব্যবহার করে লক করা যেতে পারে। এস-এস-এজেন্ট শুরু হওয়ার সময় এবং কী যুক্ত হওয়ার পরে কোনও কী-এর জন্য নির্দিষ্ট করা যায় a

আপনি পোর্ট এবং কী সংজ্ঞা সরবরাহ করতে একটি। / .Ssh / কনফিগারেশন ফাইল সেটআপ করতে চাইতে পারেন। (আরও বিকল্পের জন্য `man ssh_config দেখুন))

host 22.33.44.55
    IdentityFile ~/.ssh/1234-identity
    Port 1234

একক ssh কমান্ড উদ্ধৃতি শেল সম্প্রসারণ রোধ করবে যা প্রয়োজন ~বা এর জন্য প্রয়োজন $HOME। আপনি একক উদ্ধৃতিতে কী বা সম্পূর্ণ বা আপেক্ষিক পথটি ব্যবহার করতে পারেন।


2
ডাবল উক্তি এবং OME হোম ব্যবহার করে আমার সমস্যার সমাধান করেছে। প্রথম দুটি কমান্ড কী করছে তা আপনি বিশদভাবে বলতে পারেন? আমি একটি কনফিগার ফাইল স্থাপনের সাথে ইতিমধ্যে পরিচিত ছিলাম - কেবল তখনই সমস্যা হয় যখন আমার একটি সার্ভারে একাধিক অ্যাকাউন্ট থাকে। আমি আশা করি না যে এটি আমাকে একই হোস্টের জন্য একাধিক পরিচয় ফাইল নির্দিষ্ট করতে দেয়।
cwd

+1 এটি আমার সমস্যাটিকে ড্রোন.আইও দিয়ে সমাধান করেছে :) অনেক অনেক ধন্যবাদ।
ভার্গব নানেকালভা 21'14

এটি হ'ল দুর্দান্ত। এফটিআর, আপনি যেমন সংযোগের জন্য ডিফল্ট ব্যবহারকারীর নামটিও নির্দিষ্ট করতে পারেন, যেমন User ubuntuইসি 2 উবুন্টু উদাহরণের জন্য কনফিগার করার সময় :) ধন্যবাদ!
ড্যানিয়েলস্মেডেগার্ডবাউস

আপনি যদি csh স্টাইলের শেল ব্যবহার করে থাকেন (যেমন fish) তবে করুনeval (ssh-agent -c)
ডেভ

77

হয় ব্যবহার করুন $HOME

rsync -avz -e "ssh -p1234  -i \"$HOME/.ssh/1234-identity\"" dir remoteUser@server:

বা মূল পথটি:

rsync -avz -e "ssh -p1234  -i /home/username/.ssh/1234-identity" dir user@server:

উবুন্টুতে rsync 3.0.9 দিয়ে পরীক্ষিত


3
হ্যাঁ এটি ঠিকঠাক কাজ করে, এসএসএল-এজেন্ট বা অন্যান্য কনফিগারেশন বিকল্পগুলি ব্যবহার করার দরকার নেই।
লরেন্ট

2
+1: এটি একটি গ্লোববিং ইস্যু, ঠিক যেমন আপনি "ls 'do" করতে পারেন না
অ্যালেক্স

$HOMEসরল উদ্ধৃতিগুলির মধ্যে (কোনও পরিবর্তনশীল সম্প্রসারণ নয়) কাজ করবে না, সুতরাং আপনাকে অবশ্যই ডাবল উদ্ধৃতি বা পরম পথ ব্যবহার করতে হবে।
এনোল

স্ট্যান্ডার্ড বাশে কাজ করা উচিত "$HOME"বা $HOMEকোনও পার্থক্য ছাড়াই (এটিও "${HOME}"সম্ভব, যদি আপনি এটি জটিল করে তুলতে চান)
টম্বার্ট

আমি একক উদ্ধৃতি ডাবলস এ পরিবর্তন করেছি।
স্টিভ বেনেট

36

আপনাকে আপনার পরিচয় কী ফাইলটির পরম পথ নির্দিষ্ট করতে হবে। এটি সম্ভবত rsync এ এক ধরণের তর্ক। (এটি সর্বোপরি নিখুঁত হতে পারে না)

আমি কিছু দিন আগে এই ইস্যুতে দৌড়েছি :-)


আপনি ব্যবহার করতে পারেন ~ তবে আপনি এটি একক উদ্ধৃতিতে এম্বেড করতে পারবেন না, কারণ এটি / home / ব্যবহারকারীর সাথে সঠিকভাবে প্রতিস্থাপিত হয় না / সঠিকভাবে কাজটি সঠিক করতে আপনার অবশ্যই ডাবল উদ্ধৃতি ব্যবহার করতে হবে, @ ইলকাভারোর সমাধান দেখুন
এক্স টিয়ান

24

এটি আমার পক্ষে কাজ করে

rsync -avz --rsh="ssh -p1234  -i ~/.ssh/1234-identity"  \
"/local/dir/" remoteUser@22.33.44.55:"/remote/dir/"

2
কোনও কারণে আমাকে পরিচয় ফাইলের পুরো পথ নির্দিষ্ট করতে হয়েছিল, যেমন /home/user/.ssh/1234-identity। তারপর এটি কাজ করে। সম্ভবত কারণ এটি তখন একটি আলাদা শেল, যেমন দারহুকের উত্তরে প্রস্তাবিত।
োসায়

@ আপনি আমাকে সেখানে বাঁচিয়েছেন! দ্রুপাল এবং আরএসওয়াইএনসির সাথে আমার একটি সমস্যা ছিল এবং সমস্যাটি ছিল পথ ... অদ্ভুত।
লি উডম্যান 21

6

আপনি কি কমান্ডটি বাশ বা sh এ চালাচ্ছেন? এটি একটি পার্থক্য করতে পারে। এর ~সাথে প্রতিস্থাপনের চেষ্টা করুন $HOME-eবিকল্পটির জন্য স্ট্রিংটিকে ডাবল-কোট করার চেষ্টা করুন ।


আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.