สร้างคีย์ 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
สร้างคีย์ 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
คำตอบ:
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
คำสั่งในสถานที่แรก
ตรวจสอบให้แน่ใจว่าคุณเข้าสู่ระบบในฐานะผู้ใช้ที่คุณต้องการสร้างคีย์ ssh ก่อน (หรือเตรียมที่จะปรับเปลี่ยนเส้นทางในคำสั่งไปยังไดเรกทอรีบ้านที่ถูกต้อง)
จากนั้นสร้างไดเรกทอรี:
mkdir ~/.ssh
สร้างไฟล์โดยใช้cat
คำสั่งที่คุณได้ระบุไว้ข้างต้น จากนั้นอย่าลืมตั้งค่าการอนุญาตอย่างถูกต้อง:
chmod 400 ~/.ssh/authorized_keys
คุณอาจต้องการตรวจสอบให้แน่ใจว่าไดเรกทอรี. ssh มีสิทธิ์ที่เหมาะสมเช่นกัน
chmod 700 ~/.ssh
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
สิ่งนี้อาจล้มเหลวหากสร้างคีย์ด้วยssh-keygen
คุณให้ชื่อไฟล์ ฉันป้อนชื่อmy-ssh-file-name
แล้วก็เขียนรหัสไปที่/Users/MyUserName
แทน.ssh
โฟลเดอร์ หากคุณปล่อยชื่อไฟล์ว่างไว้มันจะเขียนไป.ssh
ตามที่คาดไว้
-f ~/.ssh/custom-key-name