SSH ด้วยนามแฝงของผู้ใช้?


10

คำถามนี้ไม่ซ้ำกัน โปรดอ่านก่อนที่คุณจะทำเครื่องหมายเช่นนี้

เป็นไปได้ไหมที่จะกำหนดชื่อเล่นหรือนามแฝงให้กับผู้ใช้ในเซิร์ฟเวอร์ Linux และ SSH ลงในเซิร์ฟเวอร์โดยใช้ชื่อเล่น ฉันกำลังคิดอะไรบางอย่างตามบรรทัดของนามแฝงสำหรับคำสั่งต่าง ๆ ที่ได้รับการเพิ่ม.bashrcหรือ.bash_aliasesไฟล์เช่น:

alias grep='grep --color=auto'

ตัวอย่างเช่นหากมีข้อกำหนด (กฎทางธุรกิจ) ในการตั้งค่าผู้ใช้บนเซิร์ฟเวอร์ด้วยชื่อเต็มของพวกเขาเช่นjohn_smithแทนที่จะเป็นเพียงชื่อ ( john) แต่เราต้องการตั้งชื่อเล่นjohn_smith fruitloopsและเราต้องการให้ John สามารถ:

ssh john_smith@ip_address

เช่นเดียวกับ:

ssh fruitloops@ip_address

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

คำถามนี้เป็นเรื่องเกี่ยวกับการตั้งค่านามแฝงสำหรับผู้ใช้ไม่ได้เป็นเจ้าภาพ


1
ด้วยนามแฝงโฮสต์ที่คุณสามารถทำได้ssh fruitloop
Takkat

คำถามของฉันเกี่ยวกับการตั้งค่านามแฝงสำหรับผู้ใช้ไม่ใช่โฮสต์ fruitloopsหมายถึงผู้ใช้john_smithไม่ใช่ที่อยู่ IP
dw8547

1
ฉันเชื่อว่าคำถามเหล่านี้ไม่ใช่คำถามเดียวกัน ... +1 ถึงคำถาม;)
Ravexina

1
ขออภัยในความเข้าใจผิดของฉัน - นามแฝงโฮสต์ SSH จะต้องมีการตั้งค่าในลูกค้าแต่สิ่งที่คุณต้องการคือการแก้ปัญหาที่ถูกจัดตั้งขึ้นในที่เซิร์ฟเวอร์ ถอนการโหวตอย่างใกล้ชิดของฉัน
Takkat

1
ฉันคิดว่านี่เป็นไปได้ด้วย PAM trickery (ถ้าคุณใช้ PAM นั่นคือ) ฉันอาจพบรหัสเก่า ๆ ตามบรรทัดเหล่านี้ (ถ้าฉันจะโพสต์เป็นคำตอบ)
Sumudu Fernando

คำตอบ:


14

ผู้ใช้ใน linux แต่ละคนมีชื่อเดียวเท่านั้นและนั่นคือชื่อเดียวของเขา คุณสามารถสร้างนามแฝงสำหรับคำสั่งไม่ใช่สำหรับผู้ใช้

แต่คุณสามารถสร้างผู้ใช้คนที่สองด้วย UID ไดเร็กตอรี่โฮมและรหัสผ่านเดียวกันกับคุณ


ดังนั้น/etc/passwdรายการของฉันที่สอดคล้องกับผู้ใช้เหล่านี้จะมีลักษณะ: john_smith:x:1001:1001:,,,:/home/john_smith:/bin/bashและfruitloops:x:1001:1001:,,,:/home/john_smith:/bin/bash?
dw8547

2
ฉันพยายามที่ 3 วิธีที่แตกต่างหลังจากการเพิ่มผู้ใช้ด้วยjohn_smith 1)สิ่งนี้ใช้งานไม่ได้ ( ล้มเหลวเนื่องจากถ่ายหมายเลขผู้ใช้) 2)สิ่งนี้ใช้งานได้ แต่นำไปสู่พฤติกรรมบางอย่างที่ไม่พึงประสงค์3)ในที่สุดฉันเพิ่มบรรทัดลงในไฟล์โดยตรงและนี่ก็ใกล้เคียงที่สุดกับสิ่งที่ฉันเป็น . ฉัน SSH เป็นและลงจอดในเมื่อมาถึง UID = 1001 adduser --home /home/john_smith --uid 1001 fruitloopsadduser useradd --home /home/john_smith --non-unique --uid 1001 fruitloopsfruitloops:x:1001:1001:,,,:/home/john_smith:/bin/bash/etc/passwdip_addressfruitloops/home/john_smith
dw8547

1
ฉันจะพูดเล่นกับถ้อยคำของคุณที่นี่ ในสถานการณ์ของคุณคุณได้สร้างผู้ใช้หนึ่งคน (1001) ด้วยชื่อเข้าสู่ระบบที่แตกต่างกันสองชื่อ คุณยังไม่ได้ทำที่นี่ แต่ไม่มีเหตุผลว่าทำไมทั้งสองชื่อไม่สามารถมีโฮมไดเร็กตอรี่และเชลล์ล็อกอินที่แตกต่างกันได้ เข้าสู่ระบบในฐานะ "fruitloops" และสร้างไฟล์ ตรวจสอบไดเรกทอรีแล้วคุณจะเห็นว่า john_smith แสดงเป็นเจ้าของไฟล์เพราะเป็นชื่อแรกที่พบใน / etc / passwd สำหรับ uid 1001 เราสามารถโต้แย้งได้ว่า john_smith เป็นชื่อและ fruitloops เป็นนามแฝงหรือ john_smith เป็นชื่อหลักและผลไม้ชุดที่สอง แต่นั่นคือความหมาย
Monty Harder

2
"คุณสามารถสร้างผู้ใช้คนที่สองด้วย UID, โฮมไดเร็กตอรี่และรหัสผ่านเดียวกัน" ซึ่งฟังดูเหมือนแฮ็คที่น่ากลัวซึ่งไม่รับประกันว่าจะสามารถใช้งานได้กับ POSIX POSIX ต้องการให้ความสัมพันธ์ระหว่างชื่อผู้ใช้และ ID ผู้ใช้นั้นแตกต่างกันแบบสองทิศทาง
David Foerster

@ dw8547 คุณสามารถอธิบายเพิ่มเติมเล็กน้อยเกี่ยวกับพฤติกรรมที่ไม่พึงประสงค์จากคำสั่ง useradd ได้หรือไม่?
Monty Harder

0

ฉันไม่ได้ลอง แต่เป็นอีกตัวเลือกหนึ่งนอกเหนือจากผู้ใช้สองคนที่แมปกับ UID เดียว (ซึ่ง IMO ดูเหมือนว่าอันตราย แต่ตัวเลือกนี้อาจเป็นอันตรายเท่า ๆ กัน) คือการให้ผู้ใช้รายเดียวทำหน้าที่เป็นตัวเปลี่ยนเส้นทางโดยใช้คีย์ SSH นี่คือวิธีที่เก็บแหล่งควบคุมที่ใช้ SSH

meช่วยให้ผู้ใช้เรียก ทุกคนจะใช้นามแฝงนี้

ssh me@ip_address

ขณะนี้ผู้ใช้มีกุญแจสาธารณะทั้งหมดของผู้ใช้ในพวกเขาme~/.ssh/authorized_keys

command="sudo -i -u user-mapped-to-key" ssh-rsa key

คุณจะต้องทำให้ผู้ใช้meมีความสามารถในการ sudo เป็นผู้ใช้รายอื่นและคุณจะต้องจัดการmeไฟล์คีย์ที่ได้รับอนุญาต

อย่างไรก็ตามฉันไม่ได้ทดสอบสิ่งนี้ แต่ในทางทฤษฎีบางอย่างเช่นนี้ควรใช้งานได้

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.