私は自宅のPCでリバースSSHトンネリングを使用して、私が所有している(私も所有している)インターネットサーバーを介して制限されたクライアントに接続します。
この SSH トンネルの中間子区間に対して限られたクライアントを設定するスクリプトがあります。スクリプトを手動で実行すると正常に動作します。ここにいる:
#!/bin/sh
autossh -M 12399 -oPubkeyAuthentication=yes -oPasswordAuthentication=no -oLogLevel=error -oUserKnownHostsFile=/dev/null -oStrictHostKeyChecking=no -i ~/.ssh/named_id_rsa -R 12345:localhost:22 [email protected] -p 22
ネットワーク起動時に自動的に実行したいこのマシンに。
これを達成するために、次のように保存しようとしました。 /etc/network/if-up.d/reverse_ssh_tunnel.sh
「~/」を削除し、秘密鍵のフルパスをhome/username/.ssh/named_id_rsaとして指定する必要があることを知っています。
su -cユーザー名を使用する必要があると思いますmy_script_name
が、正しく機能しません。私の問題のこの部分を解決することが最も重要です。完全に自動化され、無人化する必要があります。
自宅で接続するには、次の2つの手順を手動で実行する必要があります。
A. ssh ホーム -> ブローカー
B. ssh ブローカー -> 制限付きクライアント
AとBを1段階で完了できますか? (これは良いですが必須ではありません。)
簡単に言うと:
- 理想的には、AとBを1段階で手動で実行したいと思います。
autossh
完全自動になるには、制限付きクライアント - >中間子接続が必要です。
答え1
さて、いよいよ動作します。詳細はこの質問にあります。 SSHリバーストンネルによるTeamViewerのリモートデスクトップの置き換え
簡単に言うと:
デスクトップ(サポート予定):
su -l -c "autossh -M 5234 -N -f -R 1234:localhost:22 [email protected] &" username
ノートブック(サポート付き):
me@laptop:~/.ssh$ ナノ構成
Host family_desktops
ProxyCommand ssh middleman_fqdn nc localhost %p
User admin
PasswordAuthentication no
IdentityFile ~/.ssh/my_id_rsa
その後、ワンステップで「リモートデスクトップ」に接続します。
私@ノートブック:〜$ ssh family_desktops -p 1234