ssh ส่งคืน“ เจ้าของหรือการอนุญาตที่ไม่ถูกต้องใน ~ / .ssh / config”


366

เมื่อฉันพยายาม ssh ไปที่กล่องอื่นฉันได้รับข้อผิดพลาดแปลก ๆ นี้

$ ssh hostname
Bad owner or permissions on ~/.ssh/config

แต่ฉันทำให้แน่ใจว่าฉันเป็นเจ้าของและมีสิทธิ์ rw ในไฟล์:

ls -la ~/.ssh/
total 40K
drwx------ 2 robert robert 4.0K Mar 29 11:04 ./
drwx------ 7 robert robert 4.0K Mar 29 11:04 ../
-rw-r--r-- 1 robert robert 2.0K Mar 17 20:47 authorized_keys
-rw-rw-r-- 1 robert robert   31 Mar 29 11:04 config
-rw------- 1 robert robert 1.7K Aug  4  2010 id_rsa
-rw-r--r-- 1 robert robert  406 Aug  4  2010 id_rsa.pub
-rw-r--r-- 1 robert robert 6.1K Mar 29 11:03 known_hosts

ฉันเพิ่งได้รับข้อความเดียวกัน กรณีของฉันแตกต่างกัน ฉันมีIdentityFile ~/.ssh/id_rsaชุดทั่วโลกดังนั้นเมื่อฉันพยายามเข้าถึง user@myserver.com มันกำลังพยายามใช้ id_rsa นั้นโดยไม่ถามรหัสผ่านให้ฉัน หลีกเลี่ยง IdentityFile ระดับโลกและทุกอย่างจะไปได้ด้วยดี
giovannipds

คำตอบ:


569

ฉันจำเป็นต้องมี rw สำหรับสิทธิ์ของผู้ใช้ในการกำหนดค่าเท่านั้น มันคงที่

chmod 600 ~/.ssh/config

ดังที่คนอื่น ๆ ได้ระบุไว้ด้านล่างอาจเป็นเจ้าของไฟล์ (โหวตพวกเขา!)

chown $USER ~/.ssh/config

22
บางครั้งไม่เพียง แต่การอนุญาตเท่านั้น แต่ยังรวมถึงเจ้าของที่สามารถทำให้เกิดปัญหาได้อีกด้วย ในกรณีของฉันฉันต้องทำสิ่งนี้เช่นกัน:chown -R robert:robert ~/.ssh
Nicolas C

3
ในกรณีของฉันไปจาก 644 ถึง 600 ทำเคล็ดลับ
Magicsowon

2
เพียงแค่อ่านการอนุญาตควรเพียงพอนั่นคือ400
030

1
สำหรับฉันใช้งาน600ไม่ได้เฉพาะ400(บน Ubuntu Xenial)
Martín Coll

@ 030 ตราบใดที่คุณไม่ได้ตั้งใจที่จะแก้ไขไฟล์ ..
ฌอนบีน

64

คำสั่งเหล่านี้ควรแก้ไขปัญหาการอนุญาต:

chown $USER ~/.ssh/config
chmod 644 ~/.ssh/config

คำนำหน้าด้วยsudoหากไฟล์เป็นของผู้ใช้อื่น (หรือคุณไม่มีสิทธิ์เข้าถึงไฟล์)

หากไฟล์อื่น ๆ ได้รับผลกระทบแทนที่ด้วยconfig*

ในที่man sshเราสามารถอ่านได้:

เนื่องจากมีโอกาสในการถูกละเมิดไฟล์นี้ต้องมีสิทธิ์ที่เข้มงวด: อ่าน / เขียนสำหรับผู้ใช้และไม่สามารถเขียนได้โดยผู้อื่น อาจเป็นกลุ่มที่เขียนได้หากกลุ่มที่มีปัญหานั้นมีเพียงผู้ใช้เท่านั้น


3
นี้ได้เคล็ดลับสำหรับฉัน. ฉันใช้ cygwin และ cygwin .ssh เชื่อมโยงกับผู้ใช้ windows. ssh ฉันต้องเรียกใช้คำสั่งเหล่านั้นในหน้าต่าง cygwin
Damodar Bashyal

สิ่งนี้ใช้ได้สำหรับฉัน
Viraj.Hadoop

12

สำหรับฉันมันเป็นปัญหากับบัญชีผู้ใช้ของฉันไม่ได้เป็นเจ้าของไฟล์

sudo chown myuser ~/.ssh/config

2

โดยค่าเริ่มต้นบน WSL (ระบบย่อย Windows สำหรับ Linux) chmod ไม่มีผลใด ๆ ก่อนที่คุณจะสามารถchmodพูดถึงคำตอบอื่น ๆ ที่คุณต้องเพิ่มได้

[automount]
options = "metadata"

ในการ/etc/wsl.confรีสตาร์ท WSL ของคุณ(ต้องสร้าง 17093 ขึ้นไป)

ก่อนที่เขาจะพูดว่า:

C: on /mnt/c type drvfs (rw,noatime,uid=1000,gid=1000,case=off)

หลังจากเมานต์พูดว่า:

C: on /mnt/c type drvfs (rw,noatime,uid=1000,gid=1000,metadata,case=off)
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.