autossh は rc.local では実行できません。

autossh は rc.local では実行できません。

マシン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コマンドを実行します。ルートフォルダのキーへの新しいパスを含むように起動コマンドを変更すると、操作は完了します。

おすすめ記事