การกำหนดค่าไคลเอนต์
ติดตั้ง ~/.ssh/config
การตั้งค่ารายการโฮสต์สำหรับssh
เป็นเรื่องง่ายและจะช่วยให้คุณประหยัดมาก นี่คือตัวอย่าง:
Host digitaloceanbox
Hostname 111.111.111.111
User root
PubKeyAuthentication yes
IdentityFile /home/user/.ssh/digitalocean-rsa
ForwardX11 yes
Host github github.com
Hostname github.com
User git
PubKeyAuthentication yes
IdentityFile /home/user/.ssh/github-rsa
ForwardX11 no
ในตัวอย่างนี้เราติดตั้งdigitaloceanbox
และgithub
และgithub.com
เพื่อให้เราสามารถทำคำสั่งต่อไปนี้:
ssh github
ssh digitaloceanbox
หากเราต้องการที่จะเข้าสู่ระบบในฐานะผู้ใช้ที่แตกต่างจากที่ระบุไว้ในไฟล์ config เราก็ใส่user@
จุดเริ่มต้น:
สร้างssh
กุญแจ
ssh-keygen -t rsa -b 4096 -C user@homemachine
Generating public/private rsa key pair.
Enter file in which to save the key (/home/user/.ssh/id_rsa): /home/user/.ssh/digitalocean-rsa
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/user/.ssh/digitalocean-rsa
Your public key has been saved in /home/user/.ssh/digitalocean-rsa.pub.
The key fingerprint is:
SHA256:p9PYE/tveF2n//bLbp3ogYDtMtYEC5ziQiPxeob6fbo user@homemachine
ssh-keygen
โปรดทราบว่าฉันได้ระบุเส้นทางแบบเต็มของคีย์ส่วนตัวผมต้องการที่จะสร้างเมื่อได้รับแจ้งจาก ฉันยังได้กำหนดข้อคิดเห็น ( -C
) ซึ่งทำให้ฉันสามารถระบุคีย์บนเครื่องระยะไกลได้อย่างง่ายดาย
สิ่งนี้จะสร้างสองไฟล์:
.ssh/digitalocean-rsa
- กุญแจ ส่วนตัว ไม่เคยแบ่งปัน
.ssh/digitalocean-rsa.pub
- กุญแจสาธารณะ นี่คือสิ่งที่คุณเก็บไว้บนเซิร์ฟเวอร์เพื่อตรวจสอบ
เมื่อคุณระบุssh
รหัสให้แน่ใจว่าเป็น.pub
รุ่น !! เมื่อคุณเพิ่มให้~/.ssh/config
แน่ใจว่าได้เพิ่มกุญแจส่วนตัวที่ถูกต้องที่ตรงกับกุญแจสาธารณะที่คุณเพิ่มลงในระบบ
การกำหนดค่าเซิร์ฟเวอร์
การติดตั้งส่วนใหญ่จะมาพร้อมกับการเปิดใช้งานการรับรองความถูกต้องของคีย์สาธารณะ หากคุณเริ่มทำสิ่งต่าง ๆ โดยเจตนาคุณอาจพบปัญหาเล็กน้อย ในกรณีที่ OP กำลังมีปัญหาฉันแนะนำว่า OP จะลบ/root/.ssh/
ไดเรกทอรีเพื่อเริ่มต้นใหม่
ไม่แนะนำให้คุณใช้ssh
เพื่อเข้าถึงผู้ใช้รูทบนระบบรีโมต ขอแนะนำให้คุณssh
เข้าสู่ผู้ใช้รายอื่นจากนั้นเลื่อนระดับไปที่รูทโดยใช้รหัสผ่านของคุณ ( sudo su -
)
เพิ่มคีย์เพื่อโฮสต์โดยใช้ ssh-copy-id
ไม่ว่าคุณจะตัดสินใจสร้างผู้ใช้รายอื่นและใช้ssh
ในฐานะผู้ใช้รายนั้นหรือผู้ใช้รูทวิธีต่อไปนี้เป็นวิธีการแนะนำการวางssh
กุญแจบนเซิร์ฟเวอร์:
ssh-copy-id -i /home/user/.ssh/digitalocean-rsa.pub user@digitaloceanbox
สิ่งนี้อนุญาตให้sshd
สร้างไดเรกทอรีและไฟล์ที่ต้องการพร้อมสิทธิ์ที่จำเป็น ซึ่งหมายความว่ามีโอกาสเป็นศูนย์สำหรับคุณที่จะทำลายการอนุญาตหรือต้องการจำรายละเอียด เพียงใช้เครื่องมือเพื่ออัปโหลดคีย์
ปิดใช้งานการพิสูจน์ตัวตนด้วยรหัสผ่าน
ดังที่กล่าวไว้เมื่อคุณมีรหัสผ่านและยืนยันว่าคุณสามารถเชื่อมต่อโดยใช้รหัสได้แนะนำให้คุณปิดการใช้งานการตรวจสอบสิทธิ์ด้วยรหัสผ่านในsshd
และเริ่มบริการใหม่:
- แก้ไข
/etc/ssh/sshd_config
PasswordAuthentication no
sudo systemctl restart sshd
แล้วผู้ใช้ใหม่ล่ะ?
หากคุณปิดใช้งานการตรวจสอบรหัสผ่านคุณจะป้อนผู้ใช้ใหม่ได้อย่างไร วิธีหนึ่งคือการเพิ่มไฟล์แม่แบบไปยัง/etc/skel
ไดเรกทอรี เมื่อคุณป้อนผู้ใช้หนึ่งคนให้ทำดังนี้
sudo cp -r .ssh/ /etc/skel/
ls /etc/skel/.ssh
- แก้ไขไฟล์ใด ๆ ที่พบ
/etc/skel/.ssh/
เพื่อให้ไฟล์เหล่านั้นว่างเปล่าเว้นแต่คุณต้องการใส่รหัสโดยอัตโนมัติสำหรับผู้ใช้ที่สร้างใหม่ทุกคน
เมื่อคุณสร้างผู้ใช้ใหม่ด้วยsudo useradd -m newuser
ผู้ใช้นั้นจะมี.ssh/authorized_keys
ซึ่งคุณสามารถแก้ไขและจะมีสิทธิ์ที่เหมาะสม
แก้จุดบกพร่อง
คุณสามารถดูsshd
ล็อกไฟล์เพื่อดูว่าทำไมการเชื่อมต่อล้มเหลวหรือถูกปฏิเสธ:
sudo tail -f /var/log/auth.log
ขณะที่คุณใช้คำสั่งนี้ให้ใช้เทอร์มินัลอื่นเพื่อลองเข้าสู่ระบบ หลายครั้งที่ข้อความที่ให้ไว้นั้นดีพอที่จะช่วยระบุปัญหาหรือค้นหาวิธีแก้ปัญหาออนไลน์