次の質問があります。
ホームネットワークに転送したいネットワークドライブがありますsshfs
。ローカルネットワークでは、暗号化を大幅に気にする必要はありません。たとえば、パスワードを使用できますarcfour
。私のSSH内部ポートは、技術的な理由でA
他のポートを介してssh
外部ネットワークから接続できます。また、ホームネットワークにいるときに外部からポートに接続することはできません。これで、外部にインストールすると、当然追加の暗号化が使用されます。B
A
systemd
私はネットワーク上にある場合にのみポートを使用しarcfour
、それ以外の場合は別のパスワードを使用してポートを介して接続して、このマウント状況を賢明に処理するサービスを構築したいと思います。私は自分のサービスを初めて作成しますが、ここに適用する正しい条件を見つけることができません。A
X
B
誰でもこの問題を解決するのに役立ちますか?
答え1
2つのタスクを実行することをお勧めします。 1つはログイン時(インストール用)、もう1つはログアウト時(削除用)です。サンプルサービスファイル:
[Unit]
Description=mount with sshfs
[Service]
Type=simple
ExecStart=/path/to/login_script.sh
#This makes the service stay active while logged in and
# makes sure ExecStop is only executed at logout
RemainAfterExit=yes
ExecStop=/path/to/logout_script.sh
[Install]
#opens with first login and ends with last logout - multiple ssh sessions are OK
WantedBy=default.target
ログインおよびログアウトスクリプトを作成します。 SSID経由で自宅にいることを確認しましょう。あなたに合ったものが何であるかを確認してください。
#!/bin/bash
#login script
if [[ "$( nmlci | grep 'home_network_name' )" != "" ] ; then
#we're at home
sshfs <mount with home options>
else
#we're out
sshfs <mount with outside options>
fi
ログアウトしてから削除したいです。
#!/bin/bash
#logout script
fusermount -u /path/to/mount/point
サービスを有効にするには、exampleに入力し~/.cofig/systemd/user/autosshfs.service
て実行しますsystemctl --user enable autosshfs.service
。次回ログインするときに実行する必要があります。