マシンA(ローカル、複数のルータの背後)B(man-in-the-middle)とC(リモート、Aにアクセスするマシン)を介してリバースSSHトンネルを設定しました。
すべてのコンピュータに関連キーをすべて配置した後
autossh -M 10984 -o "PubkeyAuthentication=yes" -o "PasswordAuthentication=no -i /home/user/.ssh/id_rsa.pub 9999:localhost:22 user@machine-B
マシンAでは、ポート9999を介してマシンCからマシンB(man-in-the-middle)、Aに接続できます。
今追加しました。
autossh -M 10984 -N -f -o "PubkeyAuthentication=yes" -o "PasswordAuthentication=no -i /home/user/.ssh/id_rsa.pub 9999:localhost:22 user@machine-B &
私の/etc/rc.local
ファイルに保存すると、起動時にコマンドが実行され、再起動され、トンネルが機能しなくなりました。エラーが発生しました。
autossh[1966]: starting ssh (count 14)
autossh[1966]: ssh child pid is 4916
autossh[1966]: ssh exited with error status 255; restarting ssh
システムログに。
鉱山には次のものが/etc/rc.local
あります。
autossh -M 10984 -N -f -o "PubkeyAuthentication=yes" -o "PasswordAuthentication=no" -i /home/user/.ssh/id_rsa.pub -R 9999:localhost:22 user@machine-B &
ethtool -s eth0 autoneg on
exit 0
私が間違っていることを知っていますか?
アップデート:それでも気づきました。
autossh -M 10984 -N -f -o "PubkeyAuthentication=yes" -o "PasswordAuthentication=no" -i /home/user/.ssh/id_rsa.pub -R 9999:localhost:22 user@machine-B
コマンドラインで作業するには:
sudo autossh -M 10984 -N -f -o "PubkeyAuthentication=yes" -o "PasswordAuthentication=no" -i /home/user/.ssh/id_rsa.pub -R 9999:localhost:22 user@machine-B
パスワードが接続されていない場合でも、コマンドラインに公開鍵パスワードの入力を求められます。この-f
フラグのために追加のssh
入力が要求されない別のスタック問題(見つかりません)について読みました。 thigsはrc.local
(私が知っている限り)rootとして実行されるため、正常に終了しないプロセスをautossh
生成し続ける理由だと思います。ssh
実際に-f
フラグを削除すると、Ubuntuはパスワードを求めるウィンドウを作成し続けます。キーを生成するときにパスワードを入力しませんでした。
答え1
私はあなたがこのウェブサイトの指示に従ったと仮定します: https://raymii.org/s/tutorials/Autossh_pertant_tunnels.html
正しく観察したとおりに実行してみてください。
sudo autossh -M 10984 -N -f -o "PubkeyAuthentication=yes" -o "PasswordAuthentication=no" -i /home/user/.ssh/id_rsa.pub -R 9999:localhost:22 user@machine-B
起動時に自動障害を引き起こす追加のプロンプトです。
簡単な解決策は、SSHキーを「ユーザー」からrootにコピーすることです。
cp /home/user/.ssh/id_rsa.pub /root/.ssh/id_rsa.pub
cp /home/user/.ssh/id_rsa /root/.ssh/id_rsa -R
それは私にとって問題ではありません。コピーは「root」アカウントで行われ、所有権は自動的に「root」に設定されます。次に、ルートがホストを知るように、ターミナル(ブートではない)でautosshコマンドを実行します。ルートフォルダのキーへの新しいパスを含むように起動コマンドを変更すると、操作は完了します。
答え2
同じ操作が次のように解決されます。
マシンAで:sudo su rootを実行してautosshを実行すると、キーの入力を求められます。知りませんか? 「ok」と答えると問題なく接続でき、rc.localのコマンドが正常に動作します。