bash: /home/user/.ssh/authorized_keys: ไม่มีไฟล์หรือไดเรกทอรีดังกล่าว


11

สร้างคีย์ ssh:

$ ssh-keygen -t rsa P ""

การย้ายคีย์ไปยังคีย์ที่ได้รับอนุญาต:

$ cat $HOME/.ssh/id_rsa.pub >> $HOME/.ssh/authorized_keys

bash: /home/user/.ssh/authorized_keys: No such file or directory

คำถามเดียวกันทำไมคุณต้องเพิ่มกุญแจลงในโฮสต์ของคุณเอง?
Braiam

@Braiam ฉันได้ทำสิ่งนี้แล้วเมื่อไดเรกทอรีบ้านของฉันอยู่ในไดรฟ์เครือข่าย สิ่งนี้ทำให้ฉันสามารถ ssh กับเครื่องใด ๆ ที่ติดตั้งไดรฟ์นี้ ดังนั้นฉันจึงไม่ได้ไปที่โฮสต์ของตัวเอง
FDinoff

คำตอบ:


13
bash: /home/user/.ssh/authorized_keys: No such file or directory

องค์ประกอบของเส้นทาง/home/user/.ssh/ไม่อยู่; เชลล์ ( bash) ตรวจสอบการเปลี่ยนเส้นทาง ( >>) ก่อนที่จะดำเนินการคำสั่ง ( cat) หาก/home/userไม่มีอยู่และคุณลองทำสิ่งนี้:

cat $HOME/.ssh/id_rsa.pub >> $HOME/test_this

คุณจะได้รับ:

cat: /home/user/.ssh/id_rsa.pub: No such file or directory

เนื่องจากไฟล์นั้นไม่สามารถอยู่ในตำแหน่งนั้นได้หาก/home/user/.ssh/ไม่มีอยู่ให้เริ่มต้นด้วย

คุณกำลังทำตามคำแนะนำบางอย่างที่อาจข้ามบิตบางส่วน วิธีสร้างไดเรกทอรี:

mkdir $HOME/.ssh
chmod 700 $HOME/.ssh

อย่างไรก็ตามid_rsa.pubจะไม่อยู่ที่นั่น มันจะเป็นทุกที่ที่คุณวิ่งออกssh-keygenคำสั่งในสถานที่แรก


6

ตรวจสอบให้แน่ใจว่าคุณเข้าสู่ระบบในฐานะผู้ใช้ที่คุณต้องการสร้างคีย์ ssh ก่อน (หรือเตรียมที่จะปรับเปลี่ยนเส้นทางในคำสั่งไปยังไดเรกทอรีบ้านที่ถูกต้อง)

จากนั้นสร้างไดเรกทอรี:

mkdir ~/.ssh

สร้างไฟล์โดยใช้catคำสั่งที่คุณได้ระบุไว้ข้างต้น จากนั้นอย่าลืมตั้งค่าการอนุญาตอย่างถูกต้อง:

chmod 400 ~/.ssh/authorized_keys

คุณอาจต้องการตรวจสอบให้แน่ใจว่าไดเรกทอรี. ssh มีสิทธิ์ที่เหมาะสมเช่นกัน


1
ตามความคิดเห็นล่าสุดของคุณแสดงว่าใช่ฉันคิดว่าคุณจำเป็นต้องchmod 700 ~/.ssh
KCD

6

ssh-copy-idถ้าเป็นไปได้ฉันมักจะส่งเสริมให้คนที่จะใช้เครื่องมือ commandline

$ ssh-copy-id -h
Usage: /usr/bin/ssh-copy-id [-i [identity_file]] [user@]machine

หากคุณต้องการคัดลอกกุญแจสาธารณะ SSH เริ่มต้นของคุณไปยังเซิร์ฟเวอร์ระยะไกลคุณเพียงแค่เรียกใช้คำสั่งต่อไปนี้:

$ ssh-copy-id user@remoteserver

ผมแสดงเป็นตัวอย่างเต็มรูปแบบที่เกิดขึ้นจริงของวิธีการใช้เครื่องมือนี้ใน Q & A นี้หัวข้อ: ไม่สามารถแชร์การเชื่อมต่อ SSH ด้วย rsync


0

สิ่งนี้อาจล้มเหลวหากสร้างคีย์ด้วยssh-keygenคุณให้ชื่อไฟล์ ฉันป้อนชื่อmy-ssh-file-nameแล้วก็เขียนรหัสไปที่/Users/MyUserNameแทน.sshโฟลเดอร์ หากคุณปล่อยชื่อไฟล์ว่างไว้มันจะเขียนไป.sshตามที่คาดไว้


หรือแน่นอนคุณสามารถระบุให้เขียนคีย์ที่กำหนดเองไปยังโฟลเดอร์. ssh ได้โดยตรง:-f ~/.ssh/custom-key-name
รัฐสภา
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.