web-dev-qa-db-ja.com

システムの起動時にautosshを起動します

起動時にautosshを起動する方法はありますか。そのため、ユーザーがログインする前にsshトンネルを起動して設定しますか? Ubuntuを端末から起動します。起動時にautosshプロセスが自動的に開始され、sshできるようになります。

コマンドを/etc/rc.localに追加し、/etc/init/*.confスクリプトを作成しようとしました。これらはどれも機能していないようです。

13
ptf

systemdを使用してこれを行うことができます(autosshアクセス用に作成されたサンプルmysql):

  1. nanoまたはvimまたは適切なエディターを使用してsystemdファイルを作成します。

    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 [email protected] -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を使用する必要があります

ソース

17
George Udosen