Bắt đầu tự động khởi động hệ thống


15

Có cách nào để bắt đầu autosshkhởi động, để nó khởi động và thiết lập đường hầm ssh trước khi người dùng thậm chí đăng nhập không? Tôi khởi động Ubuntu đến thiết bị đầu cuối và tôi muốn autosshquá trình này tự động khởi động để tôi có thể ssh in.

Tôi đã thử thêm lệnh vào /etc/rc.local, cũng như để tạo /etc/init/*.conftập lệnh. Không ai trong số này dường như làm việc.


Phiên bản Ubuntu này là gì?
George Udosen

@George 16.04 LTS.
ptf

Câu trả lời:


20

Sử dụng systemdđiều này có thể được thực hiện (mẫu autosshđược tạo để mysqltruy cập):

  1. Tạo một tệp systemd bằng cách sử dụng nanohoặc vimhoặc trình soạn thảo thích hợp của sự lựa chọn:

    sudo vim /etc/systemd/system/autossh-mysql-tunnel.service 
    
  2. Thêm các nội dung sau:

    [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. Tải lại systemd:

    sudo systemctl daemon-reload
    
  4. Bắt đầu Autosshdịch vụ:

    sudo systemctl start autossh-mysql-tunnel.service
    
  5. Kích hoạt tại boot:

    sudo systemctl enable autossh-mysql-tunnel.service
    
  6. Kiểm tra trạng thái với:

    sudo systemctl status autossh-mysql-tunnel
    

Ghi chú

Tuy nhiên, có một điều quan trọng cần lưu ý về systemd và AutoSSH: -f (sử dụng nền) đã ngụ ý AUTOSSH_GATETIME=0, tuy nhiên -fkhông được hỗ trợ bởi systemd.

Vì vậy, trong trường hợp systemdbạn cần sử dụngAUTOSSH_GATETIME

Nguồn


Cảm ơn! Tôi đang thử cái này, nhưng khi tôi chạysudo service reverse-ssh-tunnel.service status , tôi nhận được Loaded: not-found (Reason: No such file or directory). Nghiên cứu cái này ngay bây giờ :)
ptf

xin vui lòng làm sudo systemctl status reverse-ssh-tunnelkhôngsudo service reverse-ssh-tunnel.service status
George Udosen

2
Tôi tin bạn có nghĩa là autossh -i /home/<user>/.ssh/id_rsa -R 22222:localhost:22 <user>@<remote_host>
George Udosen

2
Tôi cần phải thêm -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=nolà tốt. Có lẽ tôi chỉ cần một trong số họ, chưa từng thử nghiệm chúng. Tìm thấy ở đây: stackoverflow.com/a/24689061/1211119 . Tuy nhiên, khi tôi nhìn vào màn hình đăng nhập tty1 (tôi khởi động đến thiết bị đầu cuối), dịch vụ chưa tạo đường hầm. Nếu tôi đăng nhập, dịch vụ bắt đầu.
ptf

2
Đôi khi bạn muốn chạy trong một bối cảnh người dùng khác. Để làm điều này: Thêm User=usernamevào [Service]phần trong tệp systemd.
Friederbluemle
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.