A, B, C 세 개의 서버가 있습니다. 내가 해야 할 일은 다음과 같은 명령을 실행하는 것입니다.
my_self@A:~$ ssh B "ssh C run_a_script_here"
A, B, C에서 SSH 키를 올바르게 설정하고 SSH 비밀번호를 사용하지 않으면 작동합니다. 그러나 SSH 비밀번호를 사용하여 다른 사용자로 이 명령을 실행하면 오류가 발생합니다.
user_has_passphrase@A:~$ ssh B "ssh C run_a_script_here"
Pseudo-terminal will not be allocated because stdin is not a terminal.
user_has_passphrase@A: Permission denied (publickey).
A와 B에 user_has_passphrase에 대한 키체인이 설정되어 있고 A에서 B를 ssh한 다음 문제 없이 B에서 ssh C를 사용할 수 있습니다.
비밀번호를 사용하면 체인 SSH를 수행할 수 있는지 여부가 확실하지 않습니다.
어떤 아이디어가 있나요?
고마워요, 필립
답변1
인증 과 같은 상호 작용을 위해 확인(의사) 터미널을 사용하려는 경우 sudo
(이 경우 비밀번호를 사용한 키 인증) 매뉴얼에 따라 다음 과 -t
같은 스위치를 사용할 수 있습니다.ssh
의사 터미널 할당을 강제합니다.
필요한 경우 연결될 수 있습니다.
$ ssh -t B "ssh -t C run_a_script_here"