次のコマンドを使用して、コマンドライン(パスワードは不要)からSSH接続を作成できます。
ssh -R 9900:localhost:22 user@host
システムの再起動時に実行するにはこのコマンドが必要なので、これをbashスクリプトに入れてcrontabに次の行を追加しました。
@reboot /home/me/script.sh > output
ただし、出力に次のエラーが表示されます。 ssh: Unable to 解決するホスト名 myhost: 不明な名前またはサービス
インターネット接続が確立される前にスクリプトが起動されるためです。 sshコマンドの前に1つを追加しましたが、sleep(180)
役に立ちませんでした。どんな提案がありますか?
ベストアンサー1
理想的にはこれを使用してはいけませんcron
。これが初期化システムの目的です。ネットワークの状態に応じてサービスを作成できます。
しかし、以下を使用したい場合cron
:
#!/bin/sh
host="foo.bar.com"
# Wait for host's SSH server to become accessible
while ! ssh "user@$host" exit >/dev/null 2>&1; then
sleep 1
fi
ssh -R 9900:localhost:22 "user@$host"