เริ่มการตรวจสอบอัตโนมัติเมื่อเริ่มต้นระบบ


15

มีวิธีการเริ่มต้นautosshในการเริ่มต้นเพื่อให้มันเริ่มต้นและตั้งค่าอุโมงค์ ssh ก่อนที่ผู้ใช้ยังเข้าสู่ระบบ? ฉันบูต Ubuntu ไปที่เทอร์มินัลและฉันต้องการให้autosshกระบวนการเริ่มต้นโดยอัตโนมัติเมื่อเริ่มต้นดังนั้นฉันจึงสามารถ ssh ได้

ฉันได้ลองเพิ่มคำสั่งไปยัง/etc/rc.localรวมถึงสร้าง/etc/init/*.confสคริปต์ สิ่งเหล่านี้ดูเหมือนจะไม่ทำงาน


Ubuntu รุ่นนี้เป็นรุ่นอะไร?
George Udosen

@George 16.04 LTS
ptf

สิ่งที่ต้องการ@reboot autossh -D 9050 user@sshserver -fTNCใน crontab ?
Pablo Bianchi

คำตอบ:


20

การใช้systemdสิ่งนี้สามารถทำได้ (ตัวอย่างที่autosshสร้างขึ้นสำหรับmysqlการเข้าถึง):

  1. สร้างไฟล์ systemd โดยใช้nanoหรือvimหรือตัวเลือกที่เหมาะสม:

    sudo vim /etc/systemd/system/autossh-mysql-tunnel.service 
    
  2. เพิ่มเนื้อหาต่อไปนี้:

    [Unit]
    Description=AutoSSH tunnel service everythingcli MySQL on local port 5000
    After=network.target
    
    [Service]
    Environment="AUTOSSH_GATETIME=0"
    ExecStart=/usr/bin/autossh -M 0 -o "ServerAliveInterval 30" -o "ServerAliveCountMax 3" -NL 5000:localhost:3306 cytopia@everythingcli.org -p 1022
    
    [Install]
    WantedBy=multi-user.target
    
  3. โหลดซ้ำsystemd:

    sudo systemctl daemon-reload
    
  4. เริ่มAutosshบริการ:

    sudo systemctl start autossh-mysql-tunnel.service
    
  5. เปิดใช้งานที่boot:

    sudo systemctl enable autossh-mysql-tunnel.service
    
  6. ตรวจสอบสถานะด้วย:

    sudo systemctl status autossh-mysql-tunnel
    

บันทึก

มี แต่เป็นสิ่งที่สำคัญที่จะต้องทราบเกี่ยวกับ systemd และ autossh: -f (ใช้พื้นหลัง) แล้วหมายถึงAUTOSSH_GATETIME=0แต่ไม่ได้รับการสนับสนุนโดย-fsystemd

ดังนั้นในกรณีที่systemdคุณจำเป็นต้องใช้ประโยชน์จากAUTOSSH_GATETIME

แหล่ง


ขอบคุณ! ฉันพยายามนี้ แต่เมื่อฉันเรียกฉันได้รับsudo service reverse-ssh-tunnel.service status Loaded: not-found (Reason: No such file or directory)กำลังค้นคว้าสิ่งนี้ในตอนนี้ :)
ptf

โปรดทำsudo systemctl status reverse-ssh-tunnelไม่ได้sudo service reverse-ssh-tunnel.service status
จอร์จ Udosen

2
ฉันเชื่อว่าคุณหมายถึงautossh -i /home/<user>/.ssh/id_rsa -R 22222:localhost:22 <user>@<remote_host>
George Udosen

2
ฉันต้องการเพิ่ม-o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=noเช่นกัน บางทีฉันแค่ต้องการหนึ่งในนั้นก็ยังไม่ได้ทดสอบทีละรายการ พบได้ที่นี่: stackoverflow.com/a/24689061/1211119 อย่างไรก็ตามเมื่อฉันดูที่หน้าจอล็อกอิน tty1 (ฉันบูตเครื่องไปที่เทอร์มินัล) บริการยังไม่ได้สร้างช่องสัญญาณ ถ้าฉันเข้าสู่ระบบบริการจะเริ่มขึ้น
ptf

2
บางครั้งคุณต้องการเรียกใช้ภายใต้บริบทผู้ใช้ที่แตกต่างกัน เมื่อต้องการทำสิ่งนี้: เพิ่มUser=usernameไปยัง[Service]ส่วนในไฟล์ systemd
friederbluemle
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.