ผู้ใช้ SSH เริ่มต้นบน Linux


14

อะไรคือสิ่งที่ฉันควรเพิ่มใน.bashrcไฟล์ของฉันเพื่อให้ฉันสามารถระบุผู้ใช้เริ่มต้นสำหรับการเชื่อมต่อ SSH? ตัวอย่างเช่นถ้าผมอยากให้มันเป็นรากและต้องการที่จะ SSH x ถ้าผมพิมพ์ก็ควรเริ่มต้นกับการเชื่อมต่อของssh xssh root@x

ตามค่าเริ่มต้น Linux ดูเหมือนว่าจะเป็นค่าเริ่มต้นสำหรับผู้ใช้ที่คุณเข้าสู่ระบบ เช่นถ้าฉันเข้าสู่ระบบในขณะที่ "ปีเตอร์" พิมพ์จะส่งผลในการเชื่อมต่อของssh xssh peter@x

โปรดทราบว่าฉันยังต้องการแทนที่ค่าเริ่มต้นในบางครั้งดังนั้นให้ทำสิ่งที่ต้องการ

alias ssh='ssh root@'

ไม่ใช่ทางออกที่ดีที่สุด

คำตอบ:


34

ทางออกที่ดีกว่าการใส่ alias ใน bashrc ของคุณคือใช้ไฟล์ ssh config

cat ~/.ssh/config

HOST *  
     USER root

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

HOST 192.168.*.*
     USER homeuser

HOST 10.2.*.*
     USER workuser

คุณสามารถกำหนดค่าตามโดเมนและใช้คีย์ ssh ที่แตกต่างกันสำหรับโดเมนที่ต่างกัน

HOST *.microsoft.com
     USER bill
     IdentityFile ~/.ssh/microsoft/id_rsa

HOST *.apple.com
     USER steve
     IdentityFile ~/.ssh/apple/id_rsa

1
โปรดทราบว่าเมื่อsshสแกนไฟล์ปรับแต่งมันจะใช้การจับคู่แรกที่พบดังนั้นให้จับคู่ที่เฉพาะเจาะจงน้อยที่สุดที่ด้านล่างของไฟล์
mwfearnley

0

คุณสามารถทำนามแฝงเพื่อ ssh โดยใช้ตัวเลือก -l ดังนั้น:

alias ssh = 'ssh -l defaultuser'

ตัวเลือก -l ให้ผู้ใช้เข้าสู่ระบบ แต่สิ่งที่น่าสนใจคือผู้ใช้ถ้ามีให้ก่อนที่ข้อมูลโฮสต์จะแทนที่สิ่งนี้ ดังนั้นถ้าคุณเริ่ม

โฮสต์ ssh

หลังจากตั้งค่านามแฝงข้างต้นมันจะเข้าสู่ระบบในฐานะผู้เริ่มต้นในขณะที่ถ้าคุณเริ่มต้น

ssh newuser @ host

จะได้รับ newuser ต่อไปและไม่ใช่ defaultuser จากตัวเลือก "-l"

อย่างน้อยทำงานบนการติดตั้ง OpenSSH สองสามตัวที่มาพร้อมกับ Linux distros มาตรฐาน


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