Mr.Green

สร้าง บันทึกและแบ่งปัน

พิมพ์ค้นหาบทความได้ในช่องค้นหา

เชื่อมต่อ Droplet ด้วย OpenSSH

เชื่อมต่อ Droplet ด้วย OpenSSH เป็นการเชื่อมต่อผ่านทาง Terminal ซึ่งมีหลาย OS เช่น Linux MacOS windows สำหรับ DigitalOcean Droplet มันคือ เครื่องเสมือนที่ทำงานบน Linux   หลักการงาน คือเมื่อเราซื้อพื้นที่จาก DigitalOcean  แต่ละ Droplet เราสามารถสร้างเป็น Server ใหม่ของเราเอง  

การจัดการเกี่ยวกับ DigtalOcean Droplet จะใช้ termenal  และ ssh  ในการจัดการหรือแก้ไขปรับแต่งค่า เพราะฉะนั้นในเครื่องคอมพิวเตอร์ของเราต้องมี SSH client และต้องสร้าง SSH key  ไว้เปรียบเทียบระหว่าง SSH Key ในคอมพิวเตอร์ของเราและใน Droplet

การตรวจสอบเพื่อเข้าเชื่อมต่อกับระหว่าง เครื่องลูกกับDroplets  มีช่องทาง ที่สามารถเลือกได้  โดยการใช้ password แต่ความปลอดภัยต่ำ  หรือจะใช้การเชื่อมต่อผ่านทาง SSH Key ซึ่งจะมีความปลอดภัยสูง ที่จะอธิบายในบทความนี้

ในการ Login เพื่อเข้าใช้งาน Droplet ด้วย SSH  เราจะต้องรู้รายละเอียดดังนี้

  • Ip Address ของ Droplet
  • ชื่อผู้ใช้ ใน Server
  • รหัสผ่าน ของผู้ใช้ ในกรณีที่ ไม่ใช้ SSH Key

การเข้าไปดูค่า Ip Address ของ Droplet

เข้าไปยัง DigitalOcean Control Panel   เพื่อดูค่า Ip Address  ในแถวที่เราสร้าง Droplet สามารถเอาเมาส์ไปวางไว้ข้างบนแล้ว แล้วคัดลอกมาได้ 

ในขั้นตอนการสร้าง Droplet มีตัวเลือกในการเชื่อมต่อ เพราะฉะนั้น เราต้องเลือกว่า จะเชื่อมต่อแบบ Add SSH Key หรือ ใช้ Password ในการเชื่อมต่อ ถ้าใช้แบบ SSH key ก็ต้อง เพิ่ม SSH key  ก่อน เราจึงสามารถจะเชื่อมต่อผ่านทาง SSH หรือ ผ่าน command line ที่เครื่องลูกได้  แต่หากเราต้องการให้ตรวจสอบการเชื่อมต่อ โดยระหัสผ่าน ก็ต้องกำหนดรหัสผ่าน ขณะสร้าง Droplets

การใช้งานผ่าน OpenSSH

การเชื่อมต่อ Droplets ด้วย SSH KEY เป็นการสร้าง Key เพื่อไว้สำหรับการเชื่อมต่อจากเครื่องคอมพิวเตอร์ของเราหรือที่เรียกว่าเครื่องลูกไปยัง Droplet จะใช้ terminal ในการใช้งาน terminal แล้วแต่ว่า คอมพิวเตอร์ที่เราใช้งานในระบบปฎิบัติการแบบใด โดยปกติจะใช้วิธีดังนี้

  • Linux: Search Terminal or press CTRL+ALT+T.
  • macOS: Search Terminal.
  • Bash on Windows: Search Bash. If you don’t have Bash on Windows, use PuTTY instead.

เมื่อเปิด terminal แล้ว ให้ใช้คำสั่ง SSH ตามตัวอย่าง

ssh root@203.0.113.0

แต่  ถ้าเราสร้าง หลายๆๆ SSH Key  เราจะต้องกำหนดเส้นทางที่วาง Key ในเครื่องของเรา โดยใช้ เครื่องหมาย -i  เช่น                    ssh -i /path/to/private/key username@203.0.113.0

การเพิ่ม SSH Keys ไปยัง Droplets

ที่มาของบทความการเชื่อมต่อ Droplets ด้วย SSH KEY

เนื่องจาก ตอนสร้าง Droplets ได้สร้าง SSH Keys ผ่านทาง Putty  เพราะขณะสร้าง ได้ใช้เครื่องที่เป็นระบบปฎิบัติการวินโดว์ แต่ พอมาใช้งานจริงเพื่อติดตั้ง FAMP การทำงานผ่าน Putty มันสะดวกสู้การทำงานผ่าน command line บน ระบบปฎิบัติการ Linux ไม่ได้ เมื่อเชื่อมต่อโดยผ่าน command line จะแจ้งว่า Permission denied (publickey)

ไม่สามารถเชื่อมต่อได้  เลยสร้างบทความนี้ไว้เป็นบททึกความจำขั้นตอนในการสร้าง เพื่อเชื่อมต่อโดยใช้ Arch linux

การสร้าง SSH key ด้วย OpenSSH

เริ่มต้นที่เครื่องลูกก่อน ใช้คำสั่ง ssh-keygen ซึ่งเป็นเครื่องมือที่ให้มาพร้อมกับ Openssh เพื่อ generate key pairs 

ssh-keygen

หลังจากใช้คำสั่ง นั้นโปรแกรมจะสอบถามให้เลือกที่ตั้งของ Keys โดยปกติ จะเก็บไว้ใน  ไดเร็กเตอรี่   ~/.ssh  จะมีชื่อ 2 ชื่อ คือ id_rsa  สำหรับ private Key และ id_rsa.pub สำหรับ  Public Key  ให้เอาตามที่โปรแกรมแจ้งมาเลย เพราะมันจะสะดวกในขั้นตอน เครื่องลูกค้นหา SSH Key 

Generating public/private rsa key pair.
Enter file in which to save the key (/home/username/.ssh/id_rsa):

หลังจากเราเลือกที่ตั้งของ Key แล้ว จะเข้าสู่หน้า สร้าง Passphrase หากสร้างตัวนี้ ในการเชื่อมต่อทุกครั้งจะต้องกรอก Passphrase หากไม่ต้องการสร้าง กด Enter ข้ามไปได้

Created directory '/home/username/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:

หลังจากเสร็จสิ้นทุกขั้นตอน โปรแกรมจะแสดงที่ตั้ง และชื่อของ Pubic key และ Private key สำหรับใช้ในการตรวจสอบเมื่อเชื่อมต่อระหว่างคอมพิวเตอร์ของเรากับ Droplets

Your identification has been saved in /home/username/.ssh/id_rsa.
Your public key has been saved in /home/username/.ssh/id_rsa.pub.
The key fingerprint is:
a9:49:EX:AM:PL:E3:3e:a9:de:4e:77:11:58:b6:90:26 username@203.0.113.0
The key's randomart image is:
+--[ RSA 2048]----+
|     ..o         |
|   E o= .        |
|    o. o         |
|        ..       |
|      ..S        |
|     o o.        |
|   =o.+.         |
|. =++..          |
|o=++.            |
+-----------------+

การเพิ่ม SSH Keys ไปยัง Droplets ที่สร้างใหม่

หลังจากที่สร้าง SSH Key เสร็จ  ต่อมาเป็นขั้นตอนการอัพโหลด เพื่อนำไปเก็บไว้ใน DigitalOcean เพื่อจะสร้างไว้ใน Droplet ของเรา

การเพิ่ม การเชื่อมต่อ Droplets ด้วย SSH KEY ที่มีอยู่แล้ว

          สมมุติว่า ครั้งแรก ได้ การเชื่อมต่อ Droplets ด้วย SSH KEY แต่สร้างผ่าน Putty  ขั้นตอนในการสร้าง  เราได้สร้าง SSH Key ในเครื่องของเรา  หลังจากนั้น ก็ส่งไปเก็บไว้ใน Droplet   เท่ากับว่าใน Droplet มี SSH Key อยู่แล้ว แต่ เราสร้างและใช้งานผ่าน Putty ในเครื่องวินโดว์  แต่เราต้องการเชื่อมต่อ Droplets ด้วย SSH KEY   เพื่อใช้งานผ่าน Linux

ขั้นตอนการส่งเข้าไปเก็บไว้ใน Droplet มีหลายรูป แต่ ขอแนะนำในส่วนที่คิดว่า ไม่ยาก คือไม่ต้องใช้คำสั่งมาก หรือซ้ำซ้อน แค่ทำตามลำดับที่เราเข้าใจแล้วใช้คำสั่ง ง่ายๆๆ

ในเครื่องคอมพิวเตอร์ของเรา ให้ใช้คำสั่งนี้ เพื่อดูเนื้อหาของ Public Key ในเครื่องของเรา

cat ~/.ssh/id_rsa.pub

คัดลอกตัว SSH Key มาแล้วไว้

ssh-rsa EXAMPLEzaC1yc2EAAAADAQABAAACAQCqql6MzstZYh1TmWWv11q5O3pISj2ZFl9HgH1JLknLLx44+tXfJ7mIrKNxOOwxIxvcBF8PXSYvobFYEZjGIVCEAjrUzLiIxbyCoxVyle7Q+bqgZ8SeeM8wzytsY+dVGcBxF6N4JS+zVk5eMcV385gG3Y6ON3EG112n6d+SMXY0OEBIcO6x+PnUSGHrSgpBgX7Ks1r7xqFa7heJLLt2wWwkARptX7udSq05paBhcpB0pHtA1Rfz3K2B+ZVIpSDfki9UVKzT8JUmwW6NNzSgxUfQHGwnW7kj4jp4AT0VZk3ADw497M2G/12N0PPB5CnhHf7ovgy6nL1ikrygTKRFmNZISvAcywB9GVqNAVE+ZHDSCuURNsAInVzgYo9xgJDW8wUw2o8U77+xiFxgI5QSZX3Iq7YLMgeksaO4rBJEa54k8m5wEiEE1nUhLuJ0X/vh2xPff6SQ1BL/zkOhvJCACK6Vb15mDOeCSq54Cr7kvS46itMosi/uS66+PujOO+xt/2FWYepz6ZlN70bRly57Q06J+ZJoc9FfBCbCyYH7U/ASsmY095ywPsBo1XQ9PqhnN1/YOorJ068foQDNVpm146mUpILVxmq41Cj55YKHEazXGsdBIbXWhcrRf4G2fJLRcGUr9q8/lERo9oxRm5JFX6TCmj6kmiFqv+Ow9gI0x8GvaQ== username@203.0.113.0

ขั้นตอนนี้ หากเราไม่สามารถเชื่อมต่อผ่านทางเครื่องลูกของเราไปยัง Droplet ได้ ให้ใช้วิธีเชื่อมต่อผ่าน Droplet Console  หรือไปก็ใช้เครื่องคอมพิวเตอร์อีกตัวที่เราสร้างผ่าน Putty ไว้เพื่อเชื่อมต่อและใช้คำสั่งต่อไปนี้

mkdir -p ~/.ssh

สร้างไฟล์ และเปิด เพื่อแก้ไขหรือเพิ่มเติมข้อมูลที่เราคัดลอกมาลงในไฟล์  หากมีของเดิมให้ใช้วิธีวางแยกบรรทัด

nano ~/.ssh/authorized_keys

หรือจะใช้วิธีการนี้ ก็ได้ แต่ แบบแรกน่าจะดีกว่า แค่เปิดมา แล้วก็วาง

echo "ssh-rsa EXAMPLEzaC1yc2E...GvaQ== username@203.0.113.0" \
>> ~/.ssh/authorized_keys

กำหนดการเข้าถึงไฟล์ที่เราสร้างมาทั้งหมด โดยการใช้คำสั่ง ตามข้างล่าง 

คำสั่งแรกคือ การกำหนดสิทธิ์การเข้าถึง

คำสั่งที่สอง คือการเปลี่ยนเจ้าของให้เป็น user ที่เราต้องการ 

chmod -R go= ~/.ssh
chown -R $USER:$USER ~/.ssh

ยังมีอีกหลายรูปแบบ สามารถเข้าไปอ่านได้ จากที่นี่  ข้อมูลจากเว็บนี้ 

ในบทความนี้ เขียนตามความเข้าใจของตัวเอง 

เพิ่มเติม เพื่อตรวจสอบการเชื่อมต่อ กรณีที่เราใช้ linux อาจจะมีปัญหากับข้อมูลที่เก็บไว้ในเครื่องของเรา

ให้ใช้คำสั่งนี้ ตรวจสอบได้

ssh -v root@xxxxxxx

ว่าแต่ละชั้นตอนมีปัญหาตรงไหน เพื่อจะได้ปรับแต่งให้สามารถเป็นไปตามขั้นตอนที่โปรแกรมแจ้งมา

Tags:  

Leave a Reply

Your email address will not be published. Required fields are marked *