สิ่งที่เป็นSSH_TTY
และSSH_CONNECTION
ตัวแปรหา? ในระบบ Ubuntu ของฉันทั้งคู่จะว่างเปล่า พวกเขาควรมีค่าอะไร
สิ่งที่เป็นSSH_TTY
และSSH_CONNECTION
ตัวแปรหา? ในระบบ Ubuntu ของฉันทั้งคู่จะว่างเปล่า พวกเขาควรมีค่าอะไร
คำตอบ:
จากssh
หน้าคน:
SSH_CONNECTION
Identifies the client and server ends of the connection.
The variable contains four space-separated values: client IP address,
client port number, server IP address, and server port number.
....
SSH_TTY
This is set to the name of the tty (path to the device) associated
with the current shell or command. If the current session has no tty,
this variable is not set.
เนื่องจากคุณไม่ได้อยู่ในเซสชัน ssh ดังนั้นจึงไม่ได้ตั้งค่าตัวแปรเหล่านี้
man bash
และค้นหาความหมายของตัวแปรเหล่านั้น พวกเขาจะตั้งค่าเสมอไม่ว่าคุณจะอยู่ในเซสชั่น ssh หรือไม่
ssh
ตัวแปรทั้งสองจะถูกกำหนดไว้เฉพาะเมื่อคุณได้เข้าสู่ระบบผ่าน SSH_TTY
ระบุโหนดอุปกรณ์ของเทอร์มินัลเสมือนปัจจุบัน (เช่น/dev/pts/25
) การSSH_CONNECTION
ตั้งค่าเป็น ip และพอร์ตบนไคลเอนต์และบนเครื่องโฮสต์ (4 ช่องคั่นด้วยช่องว่าง)
ดังที่ผู้อื่นกล่าวถึงตัวแปรเหล่านี้จะถูกตั้งค่าเฉพาะเมื่อมีการทำเซสชั่น หากต้องการดูสิ่งนี้ด้วยตนเองตรวจสอบค่าต่างๆภายใต้เซสชัน SSH ที่ใช้งานอยู่:
ssh user@host 'echo SSH_TTY: $SSH_TTY SSH_CONNECTION: $SSH_CONNECTION'
จากการเชื่อมต่อที่ประสบความสำเร็จ OpenSSH ตั้งค่าตัวแปรสภาพแวดล้อมหลายอย่าง
SSH_CONNECTION
แสดงที่อยู่ของลูกค้าพอร์ตขาออกบนไคลเอนต์ที่อยู่ของเซิร์ฟเวอร์และพอร์ตขาเข้าบนเซิร์ฟเวอร์
SSH_TTY
ตั้งชื่ออุปกรณ์ pseudo-terminal ย่อ Ppty บนเซิร์ฟเวอร์ที่ใช้โดยการเชื่อมต่อ
ตัวอย่างเช่น:
SSH_CONNECTION='192.168.223.17 36673 192.168.223.229 22'
SSH_TTY=/dev/pts/6