ชีตสรุป SSH
ข้อมูลอ้างอิง SSH ที่ค้นหาและพิมพ์ได้ — การเชื่อมต่อ คีย์ การกำหนดค่า tunneling SCP/SFTP และ agent forwarding ฟรี
การเชื่อมต่อ
10ssh user@host
เชื่อมต่อในฐานะ user ไปยัง host
ssh -p 2222 user@host
เชื่อมต่อบนพอร์ตที่ไม่ใช่ค่าเริ่มต้น
ssh -i ~/.ssh/id_ed25519 user@host
ใช้ identity key เฉพาะ
ssh user@host 'uptime'
รันคำสั่งระยะไกลคำสั่งเดียวแล้วออก
ssh -v user@host
แสดงผลละเอียดเพื่อดีบัก (-vvv สำหรับมากขึ้น)
ssh -t user@host 'sudo -i'
บังคับ pseudo-terminal (สำหรับคำสั่งโต้ตอบ)
ssh -X user@host
เปิดใช้งาน X11 forwarding
ssh -o ServerAliveInterval=60 user@host
ส่ง keepalive เพื่อเลี่ยง timeout
exit / Ctrl-D
ปิดเซสชันระยะไกล
~.
บังคับตัดเซสชันที่ค้าง
การสร้างคีย์
8ssh-keygen -t ed25519 -C 'you@example.com'
สร้างคู่คีย์ Ed25519 แบบสมัยใหม่
ssh-keygen -t rsa -b 4096
สร้างคู่คีย์ RSA ขนาด 4096-bit
ssh-keygen -t ed25519 -f ~/.ssh/work
เขียนคีย์ลงไฟล์ที่ระบุ
ssh-keygen -p -f ~/.ssh/id_ed25519
เปลี่ยน passphrase ของคีย์ที่มีอยู่
ssh-keygen -y -f ~/.ssh/id_ed25519
แสดง public key จาก private key
ssh-keygen -l -f ~/.ssh/id_ed25519.pub
แสดง fingerprint ของคีย์
ssh-keygen -lv -f ~/.ssh/id_ed25519.pub
แสดงภาพ randomart ของ fingerprint
ssh-keygen -R host
ลบ host key ออกจาก known_hosts
การติดตั้ง public key
7ssh-copy-id user@host
คัดลอก public key เริ่มต้นไปยังเซิร์ฟเวอร์
ssh-copy-id -i ~/.ssh/work.pub user@host
คัดลอก public key เฉพาะ
ssh-copy-id -p 2222 user@host
คัดลอกคีย์ผ่านพอร์ตที่กำหนดเอง
cat ~/.ssh/id_ed25519.pub | ssh user@host 'cat >> ~/.ssh/authorized_keys'
คัดลอกด้วยตนเองเมื่อไม่มี ssh-copy-id
chmod 700 ~/.ssh
แก้สิทธิ์ของไดเรกทอรี .ssh ให้ถูกต้อง
chmod 600 ~/.ssh/authorized_keys
แก้สิทธิ์ของ authorized_keys ให้ถูกต้อง
pbcopy < ~/.ssh/id_ed25519.pub
คัดลอก public key ไปยังคลิปบอร์ด (macOS)
SSH config (~/.ssh/config)
10Host myserver
Alias: เชื่อมต่อด้วย `ssh myserver`
HostName 203.0.113.10
hostname หรือ IP จริงสำหรับ alias
User deploy
ชื่อผู้ใช้เริ่มต้นสำหรับ host นี้
Port 2222
port เริ่มต้นสำหรับ host นี้
IdentityFile ~/.ssh/work
key ที่ใช้กับ host นี้
IdentitiesOnly yes
เสนอเฉพาะ key ที่ระบุไว้
ForwardAgent yes
ส่งต่อ SSH agent ไปยัง host นี้
Host *.example.com
จับคู่แบบ wildcard สำหรับโดเมน
Host *
ค่าเริ่มต้นรวมสำหรับทุก host
ServerAliveInterval 60
ช่วง keepalive สำหรับทุก host
การ forward port / สร้าง tunnel
7ssh -L 8080:localhost:80 user@host
Local: เข้าถึง host:80 ผ่าน local 8080
ssh -L 5432:db.internal:5432 user@host
Local forward ไปยัง host ที่สามผ่านเซิร์ฟเวอร์
ssh -R 9000:localhost:3000 user@host
Remote: เปิด local 3000 ของคุณเป็น host:9000
ssh -D 1080 user@host
Dynamic: SOCKS proxy บน local port 1080
ssh -N -L 8080:localhost:80 user@host
ทำ tunnel อย่างเดียว ไม่รัน remote shell
ssh -f -N -L 8080:localhost:80 user@host
เปิด tunnel ในเบื้องหลัง
ssh -g -L 8080:localhost:80 user@host
ให้ host อื่นใช้ local forward ได้
Jump host / bastion
5ssh -J jump@bastion user@target
กระโดดผ่าน bastion เพื่อไปยังเป้าหมาย
ssh -J h1,h2 user@target
ต่อ jump host หลายตัวเข้าด้วยกัน
ProxyJump bastion
ค่า config เทียบเท่ากับ -J
ProxyCommand ssh -W %h:%p bastion
jump แบบเก่าที่ใช้ ProxyCommand
ssh -o ProxyJump=bastion user@target
ตัวเลือก ProxyJump แบบ inline
การโอนไฟล์ (scp & sftp)
7scp file user@host:/path/
คัดลอกไฟล์ local ไปยังเซิร์ฟเวอร์
scp user@host:/path/file .
คัดลอกไฟล์ remote มายังไดเรกทอรีปัจจุบัน
scp -r dir/ user@host:/path/
คัดลอกไดเรกทอรีแบบ recursive
scp -P 2222 file user@host:/path/
คัดลอกผ่าน port กำหนดเอง (สังเกต -P ตัวใหญ่)
sftp user@host
เริ่ม session SFTP แบบโต้ตอบ
put localfile / get remotefile
อัปโหลด / ดาวน์โหลดภายใน SFTP
rsync -avz -e ssh dir/ user@host:/path/
ซิงค์อย่างมีประสิทธิภาพผ่าน SSH (ทำต่อได้)
ssh-agent & การ forward
7eval "$(ssh-agent -s)"
เริ่ม agent ใน shell ปัจจุบัน
ssh-add ~/.ssh/id_ed25519
เพิ่ม key เข้า agent
ssh-add -l
แสดง key ที่โหลดอยู่ใน agent
ssh-add -D
ลบ key ทั้งหมดออกจาก agent
ssh-add --apple-use-keychain ~/.ssh/id_ed25519
เก็บ passphrase ใน keychain ของ macOS
ssh -A user@host
ส่งต่อ agent สำหรับการเชื่อมต่อนี้
ForwardAgent yes
ค่า config เทียบเท่ากับการ forward agent
ไม่มีรายการที่ตรงกับ “:q”
ต้องการความช่วยเหลือ?
พบปัญหากับเครื่องมือนี้หรือไม่? แจ้งทีมงานของเรา