সতর্কতা: বেসরকারী বেস ফাইল! যখন আমাজন ইসি 2 ইনস্ট্যান্সে এসএসএইচ চেষ্টা করবেন


190

আমি একটি অ্যামাজন ইসি 2 উদাহরণে পান্ডা সেট আপ করার জন্য কাজ করছি। আমি গত রাতে আমার অ্যাকাউন্ট এবং সরঞ্জামগুলি সেট আপ করেছি এবং আমার নিজের ব্যক্তিগত দৃষ্টান্তের সাথে কথা বলার জন্য এসএসএইচ ব্যবহার করে কোনও সমস্যা হয়নি, তবে এখনই পান্ডার ইসি 2 ইভেন্টে আমাকে অনুমতি দেওয়া হচ্ছে না। পান্ডা দিয়ে শুরু করা

আমি নিম্নলিখিত ত্রুটি পাচ্ছি:

@         WARNING: UNPROTECTED PRIVATE KEY FILE!          @

Permissions 0644 for '~/.ec2/id_rsa-gsg-keypair' are too open.
It is recommended that your private key files are NOT accessible by others.
This private key will be ignored.

গত রাতে আমার ব্যক্তিগত দৃষ্টিতে প্রবেশের জন্য আমি আমার কিপাইয়ারটি 600 এ ছদ্ম করে রেখেছি এবং অনুমতিগুলি 0-এ নির্ধারণ করে এমনকি নতুন কী স্ট্রিং তৈরি করতেও পরীক্ষা করেছি, তবে কিছুই কাজ করছে বলে মনে হচ্ছে না।

যে কোনও সাহায্য একটি দুর্দান্ত সাহায্য হবে!


এইচএম, মনে হচ্ছে ডিরেক্টরিটি 77 77 to এ অনুমতি সেট না করা না থাকলে, ই -২-রান-ইনস্ট্যান্ট স্ক্রিপ্টটি আমার কীফাইলগুলি সন্ধান করতে অক্ষম। আমি এসএসএইচে নতুন তাই আমি হয়তো কিছু উপেক্ষা করছি।


ইকি 2-রান-দৃষ্টান্তগুলির জন্য কেবল একটি কীপায়ের নাম থাকা উচিত যা এটি এমন কিছু যা অ্যামাজনের পক্ষে থাকে। আপনি যখন এসএসএইচ করবেন তখন কেবলমাত্র আপনার আসল প্রাইভেট কী (ডিস্কে থাকা) ব্যবহার করা উচিত ec
ব্যবহারকারী 27619

2
এই প্রশ্নের জন্য ভয়ানক শিরোনাম।
মাইকনোরসন

2
@ মাইকনেসন: এটিকে সম্পাদনা করতে দ্বিধা বোধ করুন, আমরা এখানে প্রায় জিনিসগুলি আরও ভাল করে তুলি
স্টু থম্পসন

আপনি কি নিশ্চিত যে এটিকে 0600 (অষ্টাল) এ সেট করেছেন, এবং 600 নয় (দশমিক)?
হাইড

5
chmod 400 ~/.ssh/id_rsa রেফারেন্স: stackoverflow.com/a/9270753/2082569
atulkhatri

উত্তর:


210

গত রাতে আমার ব্যক্তিগত নজরে প্রবেশের জন্য আমি আমার কিপাইয়ারটি 600 এ ছদ্ম করে রেখেছি,

এবং এটি এইভাবেই হওয়ার কথা।

থেকে EC2 ডকুমেন্টেশন আমরা আছে "আপনি OpenSSH- র (অথবা কোন যুক্তিসঙ্গতভাবে ভীতু, SSH ক্লায়েন্ট) ব্যবহার করেন, তাহলে তারপর আপনি সম্ভবত এই ফাইলের অনুমতি সেট করতে যাতে এটি শুধুমাত্র আপনার দ্বারা পাঠযোগ্য এর প্রয়োজন হবে।" যে পান্ডার ডকুমেন্টেশনগুলি আপনি অ্যামাজনের ডকুমেন্টেশনের লিঙ্কগুলিতে লিঙ্ক করেন তবে সত্যিই তা বোঝানো যায় না যে এটি সমস্ত গুরুত্বপূর্ণ।

ধারণাটি হ'ল মূল জোড় ফাইলগুলি পাসওয়ার্ডের মতো এবং সুরক্ষিত হওয়া দরকার। সুতরাং, আপনি যে এসএসএস ক্লায়েন্ট ব্যবহার করছেন তার জন্য সেই ফাইলগুলি সুরক্ষিত হওয়া প্রয়োজন এবং কেবলমাত্র আপনার অ্যাকাউন্ট এগুলি পড়তে পারে।

ডিরেক্টরিটি 700 এ সেট করা সত্যিই যথেষ্ট হওয়া উচিত, তবে ফাইলগুলি 600 হ'ল 777 এর ক্ষতি হবে না।

আপনার যে কোনও সমস্যায় ক্লায়েন্টের পক্ষ রয়েছে, তাই কোনও ফলোআপ প্রশ্নের সাথে স্থানীয় ওএসের তথ্য অন্তর্ভুক্ত করার বিষয়ে নিশ্চিত হন!


3
আমি আজকে এমন পরিস্থিতিতে পড়েছি যেখানে আমি কীফিলটি গ্রুপ-পঠনযোগ্য হতে চাই (ব্যক্তিগত লগইনের জন্য এসএসএস ব্যবহার করে নয়, তবে এই উদ্দেশ্যে রিমোট সার্ভারে ডেডিকেটেড ব্যবহারকারী, অনুমোদিত_কিগুলি কেবলমাত্র লকড থাকে) বলেছে স্ক্রিপ্টটি চলবে এবং মূল সার্ভারে একাধিক ব্যক্তির স্ক্রিপ্ট চালানোর অ্যাক্সেস থাকা উচিত)। ওহ ভাল, আমি অনুমান করি যে সহজ ব্যবহারটি হ'ল যে সমস্ত ব্যবহারকারীর অ্যাক্সেস থাকা উচিত তাদের জন্য cop / .ssh / তে অনুলিপি করা - বা সমস্ত ব্যক্তিগত কী দিয়ে অনুমোদিত_কিকে জনবহুল করা।
tobixen

@ টোবিক্সেন: দু'বছর আসছে, কিন্তু ... 'সঠিক' কাজটি হ'ল একটি উত্সর্গীকৃত ব্যবহারকারীকে চাবিটি স্থাপন করা হবে এবং গ্রুপ ব্যবহারকারীরা এই আদেশটি ডেডিকেটেড ব্যবহারকারী হিসাবে চালাতে পারবেন।
স্টু থম্পসন

ইসি 2 ডকুমেন্টেশনের লিঙ্কটি স্টুথহম্পসন মৃত বলে মনে হচ্ছে। আপনি দয়া করে আপডেট করতে পারেন?
অনিকেত ঠাকুর

আপনার উত্তরটি কার্যকর করতে আমি কী করতে চাই তা দেখতে পাচ্ছি না, দয়া করে উত্তর দিন :)
প্রতীক

@ প্রতীক উভয় কী ফাইলের জন্য 600 এবং ডিরেক্টরিতে 777 সেট করে কাজ করা উচিত।
জামো

55

নিশ্চিত হয়ে নিন যে ব্যক্তিগত কী ফাইলগুলি অন্তর্ভুক্ত ডিরেক্টরিটি 700 এ সেট করা আছে

chmod 700 ~/.ec2

কোনও বিশেষ কারণ আপনি কেন ফাইলটিতে মৃত্যুদণ্ডের অধিকার পেতে চান?
জোল্টন

1
@ জোল্টন এটি একটি ডিরেক্টরি, কোনও ফাইল নয়।
অ্যাভমোহন

আমি এটি কেবল .pem ফাইলটিতে ব্যবহার করেছি এবং এটি আমার পক্ষে কাজ করেছে।
সিজি দিলেজেন্ড

30

এটি ঠিক করতে, 1) আপনাকে অনুমতিগুলি আবার ডিফল্টে পুনরায় সেট করতে হবে:

sudo chmod 600 ~/.ssh/id_rsa sudo chmod 600 ~/.ssh/id_rsa.pub

আপনি যদি অন্য একটি ত্রুটি পেয়ে থাকেন: আপনি কি নিশ্চিত যে সংযোগ চালিয়ে যেতে চান (হ্যাঁ / না)? হ্যাঁ হোস্টকে পরিচিত হোস্টগুলির তালিকায় যুক্ত করতে ব্যর্থ হয়েছে (/ home/geek/.ssh/ज्ञ_hosts)।

২) এর অর্থ হ'ল সেই ফাইলটিতে থাকা অনুমতিগুলিও ভুলভাবে সেট করা আছে এবং এর সাথে সামঞ্জস্য করা যায়:

sudo chmod 644 ~/.ssh/known_hosts

3) অবশেষে, আপনাকে ডিরেক্টরি অনুমতিও সামঞ্জস্য করতে হতে পারে:

sudo chmod 755 ~/.ssh

এটি আপনাকে ব্যাক আপ এবং চলমান করা উচিত।


17

ব্যক্তিগত কী ফাইলটি সুরক্ষিত করা উচিত। আমার ক্ষেত্রে আমি দীর্ঘদিন ধরে পাবলিক_কি প্রমাণীকরণ ব্যবহার করছি এবং আমি ব্যক্তিগত কী এবং 4৪৪ (rw- r-- r--) এবং এর জন্য 600০০ (rw--- ---) হিসাবে অনুমতিটি সেট করতাম for হোম ফোল্ডারে .ssh ফোল্ডারে আপনার 700 অনুমতি (rwx --- ---) থাকবে। এটি সেট করার জন্য ব্যবহারকারীর হোম ফোল্ডারে যান এবং নিম্নলিখিত কমান্ডটি চালান


সেট 700 .ssh ফোল্ডারের জন্য অনুমতি

chmod 700 .ssh


ব্যক্তিগত কী ফাইলের জন্য 600 অনুমতি সেট করুন Set

chmod 600 .ssh/id_rsa


পাবলিক কী ফাইলের জন্য 644 অনুমতি সেট করুন

chmod 644 .ssh/id_rsa.pub

8

আমিও একই সমস্যা পেয়েছি, তবে আমি আমার কী ফাইলের অনুমতিটি 600 এ পরিবর্তন করে এটি ঠিক করেছি।

sudo chmod 600 /path/to/my/key.pem

লিঙ্ক: http://stackabuse.com/how-to-fix-warning-unprotected-private-key-file-on-mac-and-linux/


1
এটি আমার সমস্যাটি স্থির করেছে
রাও

2

আপনার ব্যক্তিগত কী, সর্বজনীন কী, জ্ঞাত_হোস্টগুলি একই ডিরেক্টরিতে রাখুন এবং নীচের মত লগইন চেষ্টা করুন:

ssh -I(small i) "hi.pem" ec2-user@ec2-**-***-**-***.us-west-2.compute.amazonaws.com
  • অর্থে একই ডিরেক্টরি cd /Users/prince/Desktop,। এখন lsকমান্ড টাইপ করুন এবং আপনার দেখতে হবে **.pem **.ppk known_hosts

দ্রষ্টব্য: আপনাকে একই ডিরেক্টরি থেকে লগইন করার চেষ্টা করতে হবে বা আপনার বর্তমান ডিরেক্টরি থেকে .pem ফাইলটি খুঁজে না পাওয়ায় আপনি অনুমতি অস্বীকার ত্রুটি পেয়ে যাবেন।


আপনি যদি কোনও ডিরেক্টরি থেকে এসএসএইচ সক্ষম হতে চান তবে আপনার ~/.ssh/configফাইলটিতে নিম্নলিখিতগুলি যুক্ত করতে পারেন ...

Host your.server
HostName ec2-user@ec2-**-***-**-***.us-west-2.compute.amazonaws.com
User ec2-user
IdentityFile ~/.ec2/id_rsa-gsg-keypair
IdentitiesOnly yes

ডিরেক্টরিটি যেখানে টাইপ করা যায় তা নির্বিশেষে আপনি এখনই আপনার সার্ভারে এসএসএচ করতে পারেন ssh your.server(বা "হোস্টের পরে আপনি যে নাম রাখুন)।


1

উইন্ডোজগুলিতে, গিট ব্যাশ ব্যবহার করে দেখুন এবং আপনার লিনাক্স কমান্ডগুলি ব্যবহার করুন। সহজ পদ্ধতির

chmod 400 *****.pem

ssh -i "******.pem" ubuntu@ec2-11-111-111-111.us-east-2.compute.amazonaws.com

যদি ডাব্লুএসএল ব্যবহার করে থাকে তবে নিশ্চিত হয়ে নিন যে আপনি পেন ফাইলটি একটি লিনাক্স ফোল্ডারে অনুলিপি করেছেন কারণ chmod / mnt ডায়ারে কার্যকর হবে না।
পাওলো মেরসন

1

Chmod কমান্ড ব্যবহার করে ফাইল অনুমতি পরিবর্তন করুন

sudo chmod 700 keyfile.pem

0

আমি অন্য কিছু সম্পর্কে ভাবছি, আপনি যদি অন্য কোনও ব্যবহারকারীর সাথে লগইন করার চেষ্টা করছেন যা এটি বিদ্যমান নেই তবে বার্তাটি আপনি পাবেন।

সুতরাং আমি ধরে নিচ্ছি আপনি ইক্য 2 ব্যবহারকারীর সাথে প্রকার চেষ্টা করতে পারেন তবে আমি সম্প্রতি স্মরণ করছি উদাহরণস্বরূপ বেশিরভাগ সেন্টো এএমআই ই সি 2 ব্যবহারকারীর পরিবর্তে সেন্টো ব্যবহারকারী ব্যবহার করছে

সুতরাং আপনি যদি ssh -i file.pem centos@public_IPদয়া করে আমাকে বলুন যে আপনি সঠিক ব্যবহারকারীর নাম নিয়ে এসএসএস করার চেষ্টা করছেন অন্যথায় এটি আপনার error / .ssh / id_rsa বা file.pem- এ সঠিক অনুমতি থাকা সত্ত্বেও এই জাতীয় ত্রুটি বার্তাটি দেখার শক্ত কারণ হতে পারে this


0

যে কেউ এতে হোঁচট খায় তার জন্য কেবল একটি নোট:

আপনি যদি এসএসএইচ চেষ্টা করে থাকেন যা আপনার সাথে ভাগ করে নেওয়া একটি কী দিয়েছিলেন, উদাহরণস্বরূপ:

ssh -i /path/to/keyfile.pem user@some-host

আপনার keyfile.pemসাথে ব্যক্তিগত / পাবলিক কীটি ভাগ করা হয়েছে এবং আপনি এটি সংযোগের জন্য ব্যবহার করছেন, নিশ্চিত হয়ে নিন যে আপনি এটিতে সংরক্ষণ করেছেন ~/.ssh/এবং chmod 777

ফাইলটি যখন আমার মেশিনে অন্য কোথাও সংরক্ষণ করা হয়েছিল তখন ব্যবহার করার চেষ্টা করা হয়েছে ওপির ত্রুটি। এটি সরাসরি সম্পর্কিত কিনা তা নিশ্চিত নয়।


0

সমাধানটি কেবল ফাইলের মালিকের দ্বারা এটি পঠনযোগ্য করে তোলা, অর্থাত্ অষ্টাল মোডের উপস্থাপনার শেষ দুটি অঙ্ক শূন্য (যেমন মোড 0400) হওয়া উচিত ।

ওপেনএসএসএইচ authfile.cনামের একটি ফাংশনে এটি পরীক্ষা করে sshkey_perm_ok:

/*
 * if a key owned by the user is accessed, then we check the
 * permissions of the file. if the key owned by a different user,
 * then we don't care.
 */
if ((st.st_uid == getuid()) && (st.st_mode & 077) != 0) {
    error("@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@");
    error("@         WARNING: UNPROTECTED PRIVATE KEY FILE!          @");
    error("@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@");
    error("Permissions 0%3.3o for '%s' are too open.",
        (u_int)st.st_mode & 0777, filename);
    error("It is required that your private key files are NOT accessible by others.");
    error("This private key will be ignored.");
    return SSH_ERR_KEY_BAD_PERMISSIONS;
}

মন্তব্যের পরে প্রথম লাইনটি দেখুন: এটি ফাইলের মোডের বিপরীতে "বিটওয়াইজ এবং" করে, শেষ দুটি অষ্টাল অঙ্কের সমস্ত বিট নির্বাচন করে (যেহেতু 07অষ্টাল 0b111, যেখানে প্রতিটি বিট যথাক্রমে r / w / x এর জন্য দাঁড়িয়েছে) ।

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