สิ่งที่เป็น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