두 호스트 간에 SSH를 사용하도록 설정되었으며 비밀번호는 필요하지 않습니다.
SSH 로그인은 제대로 작동하지만 다음 오류와 함께 명령 실행이 실패합니다.
**isn't allowed to be executed with process or redirect controls.**
사용할 수 있는 간단한 명령:
ssh remo-tehost " echo \"\test\" >> \"/home/alarmstest.log\" "
내가 얻는 실행 추적 :
debug1: Sending command: echo "test" >> "/home/alarmstest.log"
debug2: channel 0: request exec confirm 1
debug2: fd 3 setting TCP_NODELAY
debug2: callback done
debug2: channel 0: open confirm rwindow 0 rmax 32768
debug2: channel 0: rcvd adjust 2097152
debug2: channel_input_status_confirm: type 99 id 0
debug2: exec request accepted on channel 0
debug2: channel 0: rcvd ext data 117
원격 서버의 sudosh 사용자가 사용하는 user:x:500:500::/home/user:/usr/local/bin/sudoshauthorized_keys가 있습니다. -rw 내부 + 키 ------- 사용자 1명 사용자 9092 12월 13일 07:53 authenticate_keys
답변1
이건 인용 문제인 것 같습니다. ssh를 통해 쉘 명령을 실행하려고 할 때마다 원격 쉘(예: Bash)은 이를 /bin/bash -c <command-line>
따옴표 쌍으로 수신한다는 점을 기억하십시오.
ssh remo-tehost "echo test >> /home/alarmstest.log"
이 쌍은 로컬 셸(즉, 명령줄을 실행하는 데 사용되는 셸)이 인수를 해석하는 것을 방지하는 데 중요합니다.
답변2
홈 디렉토리 권한 문제로 인해:
원격 호스트의 ~home 디렉터리, ~/.ssh 디렉터리 및 ~/.ssh/authorized_keys 파일은 700 또는 755, 775를 사용하는 사용자만 쓸 수 있어야 하며 아무런 효과가 없습니다.
개인 키 파일(localhost)은 rw----, 600을 사용하는 사용자만 읽고 쓸 수 있습니다.