SSH를 사용하여 Teltonika RTU950을 재부팅하려고 합니다.
SSH를 통해 루트로 로그인하고 라우터를 다시 시작할 수 있습니다. 그러나 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
루트로 로그인할 때 쉘은 무엇입니까?
실제로 bash라면 다음을 시도해 볼 수 있습니다.
ssh root@routerip /bin/bash -c "/sbin/reboot"
보안 관점에서 SSH를 통해 루트 로그인을 활성화하는 것은 좋은 생각이 아닙니다. 이 문제를 해결할 수 있는지 확인하려면 공급업체 설명서를 확인해야 합니다.
답변3
ssh -t root@장치 재시작
-t 플래그에 대한 man ssh
그 이유는 -t 플래그가 없으면 비로그인 쉘과 다른 경로를 얻게 되기 때문입니다. 또한 전체 경로가 제공되더라도 재시작 명령은 비대화형으로 실행되고 있음을 감지할 수 있습니다.