উইন্ডোজ এসএসএইচ: 'প্রাইভেট-কী'-এর অনুমতিগুলি খুব বেশি উন্মুক্ত


100

আমি পরীক্ষার প্রয়োজনে উইন্ডোজ 7 এ ওপেনএসএইচ 7.6 ইনস্টল করেছি। আমি এই উইন্ডো থেকে আমার AWS ইসি 2 বাক্সে অ্যাক্সেস করার চেষ্টা না করা পর্যন্ত এসএসএইচ ক্লায়েন্ট এবং সার্ভার ঠিকঠাক কাজ করে।

দেখে মনে হচ্ছে প্রাইভেট কী ফাইলে আমার অনুমতি পরিবর্তন করতে হবে। chmodকমান্ড সহ ইউনিক্স / লিনাক্সে এটি সহজেই করা যায় ।

জানালা সম্পর্কে কি?

private-key.ppm সরাসরি এডাব্লুএস থেকে অনুলিপি করা হয় এবং আমিও অনুমতিটি অনুমান করি।

C:\>ssh -V
OpenSSH_7.6p1, LibreSSL 2.5.3

C:\>ver

Microsoft Windows [Version 6.1.7601]

C:\>


C:\>ssh ubuntu@192.168.0.1 -i private-key.ppk
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@         WARNING: UNPROTECTED PRIVATE KEY FILE!          @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions for 'private-key.ppk' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.
Load key "private-key.ppk": bad permissions
ubuntu@192.168.0.1: Permission denied (publickey).

C:\>
C:\>
C:\>ssh ubuntu@192.168.0.1 -i private-key.ppm
Warning: Identity file private-key.ppm not accessible: No such file or directory.
ubuntu@192.168.0.1: Permission denied (publickey).

C:\>

আপনি কি এসিএল সংশোধন করার চেষ্টা করেছেন?
Ignacio Vazquez-Abram

1
আপনার ব্যক্তিগত কীটি আসলে সি: \ মূল পথে রয়েছে? আমি দেখতে পাচ্ছি যে এটি কেন সি: in এর জিনিসগুলির হিসাবে সাধারণভাবে অভিযোগ করে everyone আপনি কি এটি এমন একটি ফোল্ডারে নিয়ে যাওয়ার চেষ্টা করেছেন যা কেবলমাত্র ব্যবহারকারী হিসাবে আপনার অ্যাক্সেস রয়েছে (যেমন: সি: \ ব্যবহারকারী \ ব্যবহারকারীর নাম \ ডেস্কটপ) এবং দেখুন যে বার্তাটি এখনও আসে কিনা?
দারিয়াস

@ দারিয়াস, হ্যাঁ এটি আছে। আপনি যখন ইউনিক্স / লিনাক্স থেকে উইন্ডোতে কোনও ফাইল অনুলিপি করেন, অনুমতিটিও অনুলিপি করা হয়। আমার এটি পরিবর্তন করতে হবে তবে উইন্ডোতে কীভাবে এটি করবেন তা নিশ্চিত নন। এটি ইউনিক্স / লিনাক্সে chmod কমান্ড সহ সহজেই করা যায়।
সাব্রিনা

@ ইগনাসিও ওয়াজকেজ-আব্রামস, এসিএল? কী রকম এসিএল?
সাব্রিনা

1
@ সাব্রিনা হয় আপনি অনুমতি পরিবর্তন করতে আইক্যাকলস কমান্ডটি ব্যবহার করুন, বা প্রাইভেট কীতে ডান ক্লিক করুন, এবং বৈশিষ্ট্যগুলি বেছে নিন এবং "সুরক্ষা" ট্যাবটির নীচে চেক করুন। এবং নিশ্চিত হয়ে নিন যে এটি কেবল আপনার দ্বারা / যারাই ব্যক্তিগত কীতে অ্যাক্সেস করতে সক্ষম বলে মনে করছেন। যদি "ব্যবহারকারীরা" পড়তে পারা অ্যাক্সেস করেন - তার মানে সিস্টেমে অ্যাক্সেস থাকা যে কেউ সেই ব্যক্তিগত কীটি পড়তে পারেন।
দারিয়াস

উত্তর:


114

আপনি উইন্ডোজ এক্সপ্লোরারে ফাইলটি সনাক্ত করেন, তার উপর ডান-ক্লিক করুন এবং তারপরে "সম্পত্তি" নির্বাচন করুন। "সুরক্ষা" ট্যাবে নেভিগেট করুন এবং "উন্নত" ক্লিক করুন click

মালিককে আপনার কাছে পরিবর্তন করুন, উত্তরাধিকার অক্ষম করুন এবং সমস্ত অনুমতি মুছুন। তারপরে নিজেকে "সম্পূর্ণ নিয়ন্ত্রণ" দিন এবং অনুমতিগুলি সংরক্ষণ করুন। এখন এসএসএইচ খুব বেশি ফাইলের অনুমতি সম্পর্কে অভিযোগ করবে না।

এটির মতো দেখতে শেষ হওয়া উচিত:

এখানে চিত্র বর্ণনা লিখুন


2
আমি কেবল যুক্ত করতে চাই 1) এই পদ্ধতিটি আমার উইন্ডোজ 10 ( 10.0.17134.191) বাক্সে ডাব্লু / সাইগউইন ভার CYGWIN_NT-10.0-WOW 2.3.1(0.291/5/3) 2015-11-14 12:42এবং এসএসএইচ ভেরি OpenSSH_for_Windows_7.6p1, LibreSSL 2.6.4এবং 2) ধন্যবাদ! @iBug!
atreyu

থাম্ব ড্রাইভ / ফ্ল্যাশ ডিস্কে যদি মূল ফাইলটি থাকে তবে সেই সুরক্ষা ট্যাবটি উপলব্ধ নেই!
ডিলান বি

@ ডিলানবি আপনি অপসারণযোগ্য ড্রাইভে কেন শংসাপত্র রেখেছেন? (আসলে, এই ট্যাবটি কেবল এনটিএফএস ফাইল সিস্টেমে উপলভ্য - আপনি সহজেই আপনার ড্রাইভটি এনটিএফএসে ফর্ম্যাট করতে পারেন)।
iBug

11
আসলে, আমি এটি করেছি এবং এটি এখনও অভিযোগ করে যে 0777 অনুমতিগুলি খুব বেশি খোলা।
অ্যারন ব্রামসন

10
উইন্ডোজে এটি কেন এত কঠিন, কেউ কি কেবল একটি --ignore-stupid-नियम কমান্ড বিকল্প যুক্ত করতে পারেন?
লিয়াম মিশেল

21

কীগুলি কেবলমাত্র তাদের ব্যবহারকারীর জন্যই অ্যাক্সেসযোগ্য হতে হবে এবং তারা অন্য কোনও অ্যাকাউন্ট, পরিষেবা বা গোষ্ঠী নয়।

  • গুই:
    • [ফাইল] সম্পত্তি - সুরক্ষা - উন্নত
      1. কী ব্যবহারকারীর জন্য মালিক সেট করুন
      2. অনুমতি প্রবেশের আওতায় কী ব্যবহারকারীর ব্যতীত সমস্ত ব্যবহারকারী, গোষ্ঠী এবং পরিষেবাগুলি সরান
      3. কী এর ব্যবহারকারীকে সম্পূর্ণ নিয়ন্ত্রণে সেট করুন


  • CLI:

    :: Set Variable ::
    set key="C:\Path\to\key"
    
    :: Remove Inheritance ::
    cmd /c icacls %key% /c /t /inheritance:d
    
    :: Set Ownership to Owner ::
    cmd /c icacls %key% /c /t /grant %username%:F
    
    :: Remove All Users, except for Owner ::
    cmd /c icacls %key%  /c /t /remove Administrator "Authenticated Users" BUILTIN\Administrators BUILTIN Everyone System Users
    
    :: Verify ::
    cmd /c icacls %key%

মালিক যদি আসলে একটি দল হয়? আমার ক্ষেত্রে, আমি মালিকানাধীন একটি ফাইল আছে network serviceতাই Cygwin মনে অনুমতি 0770 পরিবর্তে 0700. হয়
hyspace

একটি ফাইল অবশ্যই একটি গোষ্ঠী নয়, একটি ব্যবহারকারী এবং একটি গোষ্ঠীর মালিকানাধীন হতে হবে। চারটি অক্টাল স্পেসিফিকেশনে গ্রুপের অনুমতিগুলি হ'ল তৃতীয় অক্টাল [ব্যবহারকারী ২ য় হয়] এবং এসএসএইচ কীগুলি গ্রুপ বা অন্যদের অ্যাক্সেসযোগ্য হতে পারে না
JW0914

সেটি ইউনিক্সের ক্ষেত্রে। উইন্ডোজে network serviceকোনও ফাইলের মালিক থাকতে পারে এবং এটি একটি গ্রুপ
হিজ স্পেস

সাইগউইন উইন্ডোজে পসআইএক্স এপিআই কার্যকারিতা মঞ্জুরি দেয় তবে এটি এখনও ইউএনজি ভিত্তিক প্রোগ্রামগুলির নিয়ম অনুসারে পরিচালিত হয় (সুতরাং কোনও ইউজিও সেটআপে 3 এবং 4 অষ্টাল অনুমতি)। আপনি যখন মাইক্রোসফ্টের উইন 32-ওপেনএসএসএইচ গিটহাবের উপর একটি সমস্যা খুলতে পারেন, যেহেতু এসএসএইচ কীগুলি অবশ্যই গ্রুপ এবং অন্যদের অ্যাক্সেসযোগ্য হতে হবে , আপনার বর্ণনার উপায়টির মালিকানা সম্ভবত সমর্থিত নয়। কোনও প্রোগ্রামের আদর্শ অনুসারে এটি [সম্ভবত] অসমর্থিত উপায়ে কনফিগার করার চেষ্টা করার চেয়ে ভাল।
JW0914

1
এটি সঠিক উত্তর হওয়া উচিত। সিএলআই বিকল্পের জন্য ধন্যবাদ। জিইউআই সর্বদা উইন্ডোজের ক্ষেত্রে সফল হয়।
shyammakwana.me

10

আইবুগ দ্বারা সরবরাহ করা উত্তর ছাড়াও। যেহেতু আমি ssh কমান্ড চালানোর জন্য উইন্ডোজের অভ্যন্তরে উবুন্টু সিস্টেমটি ব্যবহার করছিলাম। এটি এখনও কাজ করে না। তাই আমি

sudo ssh ...

এবং তারপর এটি কাজ করে


sudoএটি কোনও এসএসএইচ অধিবেশন খোলার জন্য ব্যবহার করা উচিত নয় কারণ এটি সুরক্ষা ঝুঁকিপূর্ণ। এসএসএইচ অধিবেশন খোলার জন্য রুটের অ্যাকাউন্টটি কেবলমাত্র একবার ব্যবহার করা উচিত ( একক ব্যবহারকারীর সিস্টেমে (যেমন সাধারণত রাউটার ওএস-এর [ওপেনওআরটি, ডিডি-ডাব্লুআরটি, ইত্যাদিতে পাওয়া যায়]) এবং অন্যান্য এম্বেড থাকা সিস্টেম ) । SSH কী উচিত নয় শুধুমাত্র তারা করছি ব্যবহারকারী এবং অন্য কোন একাউন্ট সেবা অথবা দলের থেকে অ্যাক্সেস করা।
JW0914

@ JW0914 LOL আমার একটি একক-ব্যবহারকারী ডেবিয়ান সার্ভার রয়েছে এবং একমাত্র (লগইন) ব্যবহারকারী মূল is আমি মনে করি না যে কোনও অতিরিক্ত অ-রুট ব্যবহারকারী উপকারী কারণ এটি আমার ব্যক্তিগত সার্ভার এবং রক্ষণাবেক্ষণের কাজ সম্পাদন করার সময় আমি লগইন করি।
iBug

@ আইবুগ দয়া করে আমার মন্তব্যটি পুনরায় পড়ুন, যেমনটি মনে হয় আপনি দ্বিতীয় বাক্যটি পুরোপুরি মিস করেছেন ...
JW0914

5

আমারও একই সমস্যা ছিল এবং এটি আপনার চলমান এসএসএইচ সংস্করণের সাথে সম্পর্কিত বলে মনে হচ্ছে।

যদি আমি টাইপ করি

where ssh

আমি পাই...

C:\Windows\System32\OpenSSH\ssh.exe
C:\Program Files\Git\usr\bin\ssh.exe

আমি যখন ssh -Vউভয় লোকেশনে দৌড়ে যাই , তখন আমি পাই

OpenSSH_7.5p1, without OpenSSL
OpenSSH_7.3p1, OpenSSL 1.0.2k  26 Jan 2017

... যথাক্রমে

সুতরাং, যখন আমি sshগিট / বিন ডিরেক্টরি থেকে চালাচ্ছি , এটি ঠিক কাজ করে এবং অনুমতিগুলি সম্পর্কে কোনও অভিযোগ করে না, তবে একই কমান্ড লাইনটি চালিয়ে, এসএসএইচ এর পূর্ববর্তী ইনস্টলেশনটি ব্যবহার করে, এটি এটির সাথে ফিরে আসে।

Load key "t:\\mykeys\\rich-private.ppk": invalid format
banana@127.0.0.127: Permission denied (publickey).

গীত। ফাইলটিতে থাকা অনুমতিগুলি কেবল আমার কাছে সম্পূর্ণ অ্যাক্সেস এবং অন্য কিছুই নয়।


সুরক্ষা থেকে পুরো হোস্টের জন্য ওপেনএসএইচটি উইন্ডোজ ডিরেক্টরিতে ইনস্টল করা উচিত নয়, এটির জন্য একটি বড় অসুবিধে হওয়ারDISM কারণে রিসেট বিকল্পটি ব্যবহার করে বা উইন্ডসএসএস ডিরেক্টরিটি ব্যবহার করার জন্য উন্নত করা হয়েছে এমনinstall.esd কোনও উইন্ডোজ ডিরেক্টরি ঠিক করা উচিত which বনাম আসলটিতে ফিরে যাওয়া )
JW0914

এটিই আমাকে সাহায্য করেছিল, উইন্ডোজের এসএস সংস্করণটি এই
দৃশ্যে

এটি আমার জন্যও স্থির ছিল। দেখে মনে হচ্ছে উইন্ডোজ 10 প্রো এখন ওপেনশ্যাশের একটি পোচড সংস্করণ বান্ডিল করেছে। আমি সি: \ উইন্ডোজ \ সিস্টেম 32 \ ওপেনএসএসএইচ ফোল্ডারটি সরিয়ে ফেলতে এবং গিটার ssh.exe PATH এ যুক্ত করতে বাধ্য হয়েছিলাম।
শুক্রী অ্যাডামস

সি: \ প্রোগ্রাম ফাইলস \ গিটার \ ইউএসআর \ বিন \ ssh.exe সি: \ উইন্ডোজ \ সিস্টেম 32 \ ওপেনএসএইচ \ ssh.exe হিসাবে কাজ করে না
স্মার্টিন

3

আপনার 2 টি জিনিস প্রয়োজন:

1) উত্তরাধিকার অক্ষম করুন এখানে চিত্র বর্ণনা লিখুন

2) উত্তরাধিকার সূত্রে প্রাপ্ত অনুমতিগুলিকে স্পষ্ট অনুমতিতে রূপান্তর করুন এখানে চিত্র বর্ণনা লিখুন

3) ব্যবহারকারীদের গ্রুপ সরান এখানে চিত্র বর্ণনা লিখুন

৪) আপনি কোনও ব্যবহারকারী ব্যক্তিগত ফাইল অ্যাক্সেস করতে পারবেন না তা শেষ হবে, এটি id_rsa যুক্ত করার জন্য যথেষ্ট। এখানে চিত্র বর্ণনা লিখুন


2

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

cp <path to your key> ~/.ssh/<name of your key>

এখন আপনার অনুমতিগুলি স্বাভাবিকভাবে সংশোধন করতে সক্ষম হওয়া উচিত।

sudo chmod 600 ~/.ssh/<your key's name>

তারপরে ডাব্লুএসএল ব্যবহার করে এসএসএস করুন:

ssh -i ~/.ssh/<name of your key> <username>@<ip address>


2

আপনার কীতে নীচের কমান্ডটি ব্যবহার করুন এটি উইন্ডোতে কাজ করে

icacls .\private.key /inheritance:r
icacls .\private.key /grant:r "%username%":"(R)"

1

আপনি ফাইলের অনুমতি সামঞ্জস্য করতে chmod এর পরিবর্তে উইন্ডোতে আইক্যাকল ব্যবহার করতে পারেন। বর্তমান ব্যবহারকারীর পড়ার অনুমতি দিতে এবং সমস্ত কিছু মুছে ফেলার জন্য,

icacls <file name> /inheritance:r
icacls <file name> /grant:r "%username%":"(R)"

0

এটি @ জেডাব্লু0914 এর সিএলআই উত্তরের কেবল একটি স্ক্রিপ্টেড সংস্করণ, তাই তাকে প্রথমে এবং সর্বাগ্রে উত্সাহিত করুন। এছাড়াও, এটি আমার প্রথম পাওয়ারশেল স্ক্রিপ্ট, তাই পরামর্শগুলি স্বাগত।

# DO the following in powerhsell if not already done:
# Set-ExecutionPolicy RemoteSigned


# NOTE: edit the path in this command if needed
$sshFiles=Get-ChildItem -Path C:\DevContainerHome\.ssh -Force

$sshFiles | % {
  $key = $_
  & icacls $key /c /t /inheritance:d
  & icacls $key /c /t /grant %username%:F
  & icacls $key  /c /t /remove Administrator "Authenticated Users" BUILTIN\Administrators BUILTIN Everyone System Users
}

# Verify:
$sshFiles | % {
  icacls $_
}

0

ব্যবহার Mingw-w64

ইনফোস: http://mingw-w64.org/doku.php

উইন্ডোজের জন্য গিটের সাথে বা সরাসরি ডাউনলোড করুন।

এখানে উপলভ্য: https://github.com/mirror/mingw-w64

git clone https://github.com/mirror/mingw-w64

এছাড়া মত অন্যান্য দরকারী লিনাক্স কমান্ড রয়েছে tarএবং gzip


-1

আইবুগের উত্তর ভাল কাজ করে! আপনি এটি অনুসরণ করতে পারেন এবং এই সমস্যা থেকে মুক্তি পেতে পারেন।

অনুমতি স্থাপনের সময় আমি সমস্যার মুখোমুখি হলাম এবং এমন সমস্যাটি সমাধান করতে আমার কয়েক মিনিট সময় লেগেছিল এমন কয়েকটি জিনিস রয়েছে যা পরিষ্কার করার প্রয়োজন আছে!

আইবুগের উত্তর অনুসরণ করে, আপনি সমস্ত অনুমতি সরিয়ে ফেলবেন তবে কীভাবে আপনি নিজেকে সম্পূর্ণ নিয়ন্ত্রণের অনুমতি সেট করবেন? আমি সেখানে আটকা পড়েছিলাম কারণ আমি কীভাবে এটি করতে জানি না।

উত্তরাধিকার অক্ষম করার পরে, আপনি সমস্ত অনুমোদিত ব্যবহারকারী বা গোষ্ঠী মুছতে সক্ষম হবেন।

একবার এটি হয়ে গেল,

দেখার জন্য ক্লিক করুন Addনির্বাচন করুন তারপর Set a Principalতারপর এন্টার Systemএবং Administratorsএবং your email addreddনীচে মাঠে নির্বাচন করুন তারপর check names

এটি ব্যবহারকারীর উপস্থিতি থাকলে নাম লোড করবে। তারপরে, OK> টাইপ করুন Allow> বেসিক পার্মিসিসন Full Control> এ ক্লিক করুনOkay

এটি SYSTEM, প্রশাসক এবং আপনার ব্যবহারকারীকে সম্পূর্ণ নিয়ন্ত্রণের অনুমতি সেটআপ করবে।

এর পরে সেই কীটি ব্যবহার করে স্যাশ করার চেষ্টা করুন। এটি এখনই সমাধান করা উচিত।

আমার একই সমস্যা ছিল এবং আমি এই পদ্ধতিটি ব্যবহার করে এটি সমাধান করেছি। যদি সেই নামের সাথে কোনও ব্যবহারকারী বা গোষ্ঠী থাকে তবে তা এটি লোড করবে।

-Screenshots-

অনুমতি এন্ট্রি একটি অধ্যক্ষ নির্বাচন করুন / ব্যবহারকারী বা গোষ্ঠী নির্বাচন করুন

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