Debian 7 Wheezy 서버를 실행 중이고 SSH를 통해 다른 서버에 연결하는 데 문제가 있습니다. 이 문제는 crontab을 통해 SSH를 실행하는 동안에만 발생하며 그렇지 않은 경우에는 발생하지 않습니다(물론 동일한 사용자로 로그인한 경우).
crontab을 통해 이 사용자로 ssh 명령을 실행하는 동안 다음 문제가 발생합니다.
Host key verification failed.
~/.ssh/known_hosts
호스트 키가 정확하도록 파일을 제거 하고 서버에 수동으로 연결했습니다.
플래그를 사용하여 SSH를 실행하면 -v
다음과 같은 결과가 나타납니다.
debug1: read_passphrase: can't open /dev/tty: No such device or address
Host key verification failed.
내가 나열하면 /dev/tty
666개의 권한이 있습니다.
crw-rw-rw- 1 root root 5, 0 Jun 21 15:49 /dev/tty
/dev/tty
또한 완전히 확인하기 위해 목록을 작성한 후 수동으로 권한을 666으로 설정했습니다 .
SSH에서 /를 읽을 수 없다고 말하는 이유는 무엇입니까 dev/tty
? 나는 이것을 몇 주 동안 조사해 왔지만 답을 찾지 못했습니다. 누구든지 단서가 있습니까?
답변1
에이전트 없이(또는 적어도 암호를 제공하는 방법) 스크립트에서 암호로 보호된 키로 연결할 수 없습니다. ssh 데몬은 tty 없이는 제공할 수 없는 입력을 기다리고 있습니다.
답변2
/dev/tty
SSH는 콘솔이 아닌 crontab에서 호출했기 때문에 읽을 수 없다고 말합니다 . 장치 /dev/tty
는 현재 프로세스에 대한 컨트롤러 터미널이며 crontab에서 프로세스를 시작할 때 연결된 터미널이 없으므로 해당 장치에 액세스할 수 없습니다.
여기에 더 나은 설명이 있습니다.https://stackoverflow.com/questions/8514735/what-is-special-about-dev-tty