내 클라우드 서버에 로그인하면 다음 메시지가 나타납니다.
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