SSHを使用してTeltonika RTU950を再起動しようとしています。
SSH 経由で root としてログインし、ルータを再起動できます。ただし、SSHを介して再起動コマンドを送信しようとすると機能しません。
ssh root@routerip 'reboot'
これによりエラーが返されます。
ash: reboot: not found
代わりにshutdown -rを試してみました。また、絶対パスを試してみました。常に同じエラーが発生します。
エラーは次のとおりです。ash:
代わりにbash:
。
ルータは Linux オペレーティングシステムで動作します。 uname は以下を提供します:
Linux Teltonika-RUT950.com 3.18.44 #1
原因は何か知っていますか?
答え1
再始動または出口コマンドへの絶対パスを入力してみてください。たとえば、再起動するフルパスが/ sbin / rebootの場合は、次のようにします。
SSHルート@routerip /sbin/reboot
答え2
rootとしてログインするときのシェルは何ですか?
実際にbashなら、次のことを試すことができます。
ssh root@routerip /bin/bash -c "/sbin/reboot"
セキュリティの観点から、SSHを介してルートログインを有効にするのは良い考えではありません。この問題を解決できるかどうかを確認するには、ベンダーのドキュメントを確認する必要があります。
答え3
ssh -t root@デバイスの再起動
-t フラグの man ssh
その理由は、-t フラグがなければ、非ログインであるシェルとは異なるパスを得ることになるからです。また、フルパスが提供されても、再起動コマンドは非対話型で実行されていることを検出できます。