
클라우드 서버에 로그인하면 다음 메시지가 나타납니다.
WARNING: Your password has expired.
You must change your password now and login again!
Changing password for user.
(current) UNIX password:
현재 비밀번호를 입력하고 그 후에 새 비밀번호를 입력하는 프로세스를 자동화해야 합니다.
그러나 명령을 실행하려고 할 때마다 다음과 같은 오류가 발생합니다 WARNING: Your password has expired.\nPassword change required but no TTY available.
(Node.js 앱에서 SSH를 통해 연결 중입니다).
이 문제를 어떻게 해결할 수 있나요? 어쨌든 해당 오류 없이 명령을 실행하여 비밀번호를 변경할 수 있습니까?
답변1
ssh
스위치 를 사용하여 tty를 강제로 할당할 수 있습니다 -t
. 그런 다음 이전 비밀번호와 새 비밀번호를 파이프로 연결하는 것이 가능할 수도 있습니다. -t
SSH 클라이언트의 표준 입력이 터미널이 아닌 경우에도 tty를 강제로 할당하려면 두 배로 늘려야 합니다.
echo -en 'oldpw\nnewpw\nnewpw\n' | ssh -tt somehost true