সাইগউইনের ssh.exe ব্যবহার করে "খারাপ মালিক বা অনুমতিগুলি" ত্রুটি


29

আমি সাইগউইনে (উইন্ডোজ 7 এ) ssh.exe ব্যবহার করার চেষ্টা করছি। আমি একটি configফাইল অনুলিপি c:\cygwin\home\[USERNAME]\.ssh। আমি যখন চালনা করি ssh(উদাহরণস্বরূপ, ssh -vT git@bitbucket.org) আমি নিম্নলিখিত ত্রুটিটি পাই:

OpenSSH_5.9p1, ওপেনএসএসএল 0.9.8r 8 ফেব্রুয়ারী 2011 খারাপ মালিক বা / হোম / জেউ ইউএসআইআরএনএমআইএসএস / এসএস / কনফিগের অনুমতি

আমি কীভাবে sshআমার কনফিগারেশন ফাইলটি পড়তে পারি?

উত্তর:


46

উপরের মত কাজ করার পরে, আমি সবসময় এটি পেয়েছিলাম:

total 22
drwxrwxr-x+ 1 jl None    0 Sep  9 18:44 .
drwxrwxr-x+ 1 jl None    0 Sep  9 18:44 ..
-rw-rw----  1 jl None  129 Jul  1 14:30 config

এবং ত্রুটি চালু আছে .ssh/config। তাই আমি দৌড়ে chownউপর .sshফোল্ডারের এবং chmodএই মত আবার

> chown -R [USERNAME]:users .ssh/

এবং তারপর:

> chmod -R 600 .ssh/

এবং অবশেষে আমি এটি কাজ করেছিলাম:

total 29
drwxrwxr-x+ 1 jl None     0 Sep  9 18:44 .
drwxrwxrwt+ 1 jl None     0 Sep  9 18:44 ..
drw-------+ 1 jl Users    0 Sep  9 18:44 .ssh

সম্পাদনা করুন (উইন্ডোজ 10-এ বাশ দেওয়ার জন্য)

আপনি যখন ত্রুটি পান ..

হোস্টকে পরিচিত হোস্টগুলির তালিকায় যুক্ত করতে ব্যর্থ হয়েছে (/PATH_TO_HOME/USERNAME/.ssh/علوم_hosts)।

নিশ্চিত হয়ে যে হোস্টগুলি লিখিতযোগ্য কিনা তা নিশ্চিত করুন

$ chmod 755 পরিচিত_হোস্টস

দ্রষ্টব্য: আমি বিশ্বাস করি আপনার ব্যক্তিগত কী জন্য আপনার কেবল 600 সেট করতে হবে

তারপরে, ssh করার চেষ্টা করুন।

যখন তুমি পাবে..

স্থায়ীভাবে পরিচিত হোস্টগুলির তালিকায় 'HOST_IP' (আরএসএ) যুক্ত হয়েছে।

আপনি 600 মোড প্রতিস্থাপন করতে পারেন

$ chmod 600 পরিচিত_হোস্টস

পিএস : আমি মনে করি এটি উইন্ডোজ 8-এ একটি বাগ।


গৃহীত উত্তরটি আমার পক্ষে কাজ করে নি, তবে এটি করেছে। ধন্যবাদ!
আচল দাভে

এছাড়াও, এটি বেশ একটি অদ্ভুত বাগ। আমার কম্পিউটারে (ডাব্লু 8.1), ভিমে .ssh / কনফিগারেশন ফাইল সম্পাদনা সর্বদা এই বাগের দিকে নিয়ে যায়। এটি অত্যন্ত বিরক্তিকর, কারণ আমার এসএসএস কনফিগারেশনের প্রতিটি পরিবর্তনের জন্য এই আদেশগুলি চালানো দরকার।
আচল দাভে

4
এবং কেবল অদ্ভুততা যোগ করার জন্য, আপনি যদি উইন্ডোজের একটি অ ইংরেজী সংস্করণ ব্যবহার করে থাকেন তবে এই কমান্ডটি দেওয়ার সময় "ব্যবহারকারীদের" স্থানীয় স্থানীয় অনুবাদটি ব্যবহার করা নিশ্চিত করুন make উদাহরণস্বরূপ ডাচ ভাষায় এটি "ডাকা -আর: জেব্রুইকার্স। এসএসএইচ" হয়ে যায়
আলেকজান্ডার কেলেট

1
আমার জন্য, এই কাজ: chown -R m0j0: ব্যবহারকারীরা .ssh && chmod -R গো-rwx .ssh
m0j0

1
ধন্যবাদ এই আমার জন্য ভাল কাজ, জার্মান আপনি ব্যবহার প্রয়োজনchown -R [Username]:Benutzer .ssh/
বিরূদ্ধে

20

এই উত্তরটি https://superuser.com/a/875934/82032 থেকে ভারব্যাটিম অনুলিপি করা হয়েছে । সাম্প্রতিক সাইগউইন আপগ্রেড হওয়ার পরে এটিই আমার পক্ষে একমাত্র উত্তর।

এসিএলগুলি ভুলে যাবেন না

কিছুই আমার জন্য কাজ না হওয়া পর্যন্ত আমি ফাইল ছিনতাই ACLs ও অনুমতি পুনরায় সেট করুন।

#remove ACLs
setfacl -b ~/.ssh/config

#reset permissions
chmod 0600 ~/.ssh/config

আপনি getfaclএকটি ফাইলের বর্তমান এসিএল দেখতে ব্যবহার করতে পারেন ।

getfacl ~/.ssh/config

আমি এসিএলগুলি সরিয়ে দেওয়ার আগে (ব্রোকন):

# owner: Administrators
# group: None
user::rw-
group::---
group:Authenticated Users:rwx
group:SYSTEM:rwx
mask:rwx
other:---

কাজ করার পর)

# file: config
# owner: myusername
# group: None
user::rw-
group::---
other:---

সাইগউইন আপগ্রেড করার পরে এটিই আমার করতে হয়েছিল
ব্লকলুপ

1
এর জন্য সাইগউইন প্রয়োজন 1.7.34-6
ক্লিন্টএম

এটিই আমার পক্ষে কাজ করেছিল!
আশুতোষ জিন্দাল

9

configসাইগউইনের lsআদেশটি ব্যবহার করে ফাইলের অনুমতিগুলি পরীক্ষা করুন :

> c:\cygwin\bin\ls.exe -la c:\cygwin\home\[USERNAME]\.ssh

এটি সম্ভবত এটির মতো হবে:

total 5
drwxrwxrwt+ 1 Administrators None  0 Oct 20 17:02 .
drwxr-xr-x+ 1 [USERNAME]     None  0 Oct 19 08:15 ..
-rw-------  1 Administrators None 57 Oct 20 16:58 config

কনফিগার ফাইলটি [USERNAME] এর অন্তর্গত। এটা চেষ্টা কর:

> c:\cygwin\bin\chown.exe [USERNAME] c:\cygwin\home\[USERNAME]\.ssh\config

ls -laএখন সঠিক মালিক দেখা উচিত। যদি এটি এখনও কাজ না করে তবে মোডটি পুনরায় সেট করার চেষ্টা করুন (অনুমতিগুলি):

> c:\cygwin\bin\chmod.exe 700 c:\cygwin\home\[USERNAME]\.ssh\config

9

ইউনিক্স এবং ওএসএক্সের জন্য

অনেক সাধারনভাবে:

chown -R $USER:users ~/.ssh/
chmod -R 600 ~/.ssh/

উইন্ডোজ জন্য

ফাইলটি যদি উইন্ডোজ (এনটিএফএস) প্রতীকী লিঙ্ক হয় তবে উপরের কাজ করবে না। আপনার এটি নিয়মিত ফাইল করা দরকার। আমি নিশ্চিত না কেন।

আপনার যদি ওপেনশ বা সাইগউইন না থাকে তবে সহজেই ইনস্টল করতে চকোলেটি ব্যবহার করুন।

choco install cyg-get

চকোলেটি এবং রান দিয়ে ইনস্টল করা সিগউইন টার্মিনালটি খুলুন (নোটটি ssh-keygenনতুন কী তৈরি করে:

cyg-get install openssh
ssh-keygen
cd ~/.ssh && explorer.exe .

কী আছে তা যাচাই করুন (বা আপনার চাবিগুলি তাদের প্রতিস্থাপন করুন) এবং তারপরে সাইগউইন শেল:

chown -R $USER:users ~/.ssh/
chmod -R 600 ~/.ssh/

বা বিরল ক্ষেত্রে যা আপনি চকোলেটির এসএসএইচ প্যাকেজটি ব্যবহার করছেন (এবং এর থেকে কীগুলি তৈরি করেছেন) :

chown -R $USER:users  /cygdrive/c/Users/$USER/.ssh
chmod -R 600 /cygdrive/c/Users/$USER/.ssh

এটি সাধারণত আমার পক্ষে হয়, যেহেতু গ্রুপগুলি ফাইলগুলিতে সাধারণত ভুল থাকে।
অ্যালান ক্রুয়েগার

3

গুরুত্বপূর্ণ উইন্ডোজ যদি আপনার উইন্ডোজ ইউএস ইংরাজীতে না থাকে: "ব্যবহারকারী" গোষ্ঠীর নাম স্থানীয়ভাবে নির্ভর। উদাহরণস্বরূপ, যদি আপনার উইন্ডোজটি স্প্যানিশ হয় তবে আপনাকে ফাইলগুলির মালিকানা দিয়ে এটি পরিবর্তন করতে হবেchown $USER:Usuarios *


1

এগুলির মধ্যে (chmod / chown / icacls / setacl / copyacls / exploac> সুরক্ষা) আমার সাইগউইন 64৪ / উইন / / অ্যাডমিনে কাজ করেনি, শেষ পর্যন্ত cygwin64/ssh -F ~/.ssh/configঅন্যান্য সমাধানগুলির সাথে এটি সাইগউইন in৩ এ পুরানো এসএসএস বা উইন্ডোজের জন্য গিটের জন্য এসএসএস ব্যবহার করে ..


ব্যবহার -Fকরলে সমস্যাটি সমাধান হবে configতবে ব্যক্তিগত কীগুলির অনুমতিগুলি সমাধান হবে না।
জারি টার্কিয়া

0

যারা দির সহজ সমাধানের noaclসাথে পথে ব্যবহার করেন তাদের ~/.sshজন্য দেশীয় এনটিএফএস প্রতীকী লিঙ্ক তৈরি করা:

cmd# mklink c:\home\.ssh c:\opt\cygwin\home\misc\.ssh
symbolic link created for c:\home\.ssh <<===>> c:\opt\cygwin\home\misc\.ssh

সঙ্গে noaclসেখানে পরে অন্যান্য অনুমতি সেট করার কোন উপায় নেই rwxr-xr-xবা rw-r--r--। যেহেতু /স্তরক্রমটি noacl(বা তার সাথে থাকা উচিত acl) ছাড়াই হওয়া উচিত আপনি এখানে ডিরেক্টরি তৈরি করতে পারেন এবং সাইগউইনের অ্যাপ্লিকেশনগুলির জন্য সমস্যাযুক্ত স্থানগুলিতে এটি নির্দেশ করতে পারেন।


1
এটি একটি ডিরেক্টরি দেওয়া আছে, সহজ সমাধানটি একটি জংশন ব্যবহার করা হবে, কারণ এর জন্য প্রতীকী লিঙ্ক সেট করার জন্য প্রয়োজনীয় সুবিধাগুলি প্রয়োজন হয় না। যে হতে চাই mklink /jতারপর বা junctionSysinternals সংকলন থেকে হাতিয়ার।
0xC0000022L

0

tldr: আপনি অ্যাডমিনিস্ট্রেটর হিসাবে কনফিগারেশন তৈরি করেছেন

সমাধান

আপনি যদি ভুলভাবে ফাইলটিকে অ্যাডমিন হিসাবে তৈরি করতে এবং স্থানীয় পারম দিয়ে ফাইলটি ব্যবহার করার চেষ্টা করে থাকেন তবে এই সমাধানগুলি ওভারকিল হতে পারে।

  • আপনার ssh কনফিগারেশনের সামগ্রীগুলি অনুলিপি করুন
  • ফাইলটি মুছুন
  • একটি নতুন শেল খুলুন (স্থানীয় - প্রশাসক নয়)
  • আপনার কনফিগারটি যেখানে স্টোরেজ করা হয়েছে সেই পথে নেভিগেট করুন ( সাধারণত ~/.sshপাওয়ারশেলে বা %userprofile%\.sshসেন্টিমিটারে )
  • চালান notepad .\config

সাধারণ কমান্ড (পাওয়ারশেল):

$sshPath = '~/.ssh/config'
$content = cat $sshPath
# In case the line above fails, this check will prevent your current config to get deleted
if ($content) {
  rm $sshPath
  $content | Out-File -en ascii $sshPath
}
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.