SSH 원격 실행 - 서버 확인은 괜찮나요?

SSH 원격 실행 - 서버 확인은 괜찮나요?

SSH를 통해 관리할 수 있는 내장 장치(Perle IOLAN+, 이더넷-직렬 어댑터)가 있습니다. 때로는 이 장치에 로그인하여 명령을 실행해야 할 때도 있습니다. SSH를 통한 로그인, 대화형 셸 가져오기, 명령 실행은 모두 원활하고 잘 작동했습니다.

그러나 프로세스를 자동화하고 정기적으로 로그인하여 이 명령을 실행하는 스크립트를 내 서버에 두고 싶습니다. SSH를 통해 원격으로 할 수 있는지 테스트 중인데 할 수 없는 것 같습니다.

내가 실행하고 싶은 명령은 kill line *내 서버에서 입니다 ssh user@device_host kill line *. 하지만 예상했던 결과는 나오지 않았습니다. 시도하면 장치의 대화형 셸에서는 제대로 작동 ssh user@device_host uptime하지만 출력이 나오지 않습니다 .uptime

장치는 완전하게 작동하는 운영 체제를 실행하지 않습니다. 이는 몇 가지 사용 가능한 명령만 포함된 일종의 내장형 *nix입니다. SSH 서버가 원격 명령 실행을 인식하지 못하는 것이 가능한지 궁금합니다. 확인할 수 있는 방법이 있나요? Lite SSH 서버에는 이 기능이 부족한 경우가 많나요?

대화형 셸을 거치지 않고 원격으로 명령을 실행하는 또 다른 방법이 있습니까?

-vv를 사용한 ssh의 출력은 다음과 같습니다.

$ ssh -vv user@remote_host 가동 시간
OpenSSH_6.4, OpenSSL 1.0.1e-fips 2013년 2월 11일
debug1: 구성 데이터 읽기/etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config 줄 51: * 옵션 적용
디버그 2: ssh_connect: needpriv 0
debug1: Remote_host[remote_host] 포트 22에 연결합니다.
debug1: 연결이 설정되었습니다.
debug1: ID 파일 /home/raven/.ssh/id_rsa type-1
debug1: ID 파일 /home/raven/.ssh/id_rsa-cert type-1
debug1: ID 파일 /home/raven/.ssh/id_dsa type-1
debug1: ID 파일 /home/raven/.ssh/id_dsa-cert type-1
debug1: ID 파일 /home/raven/.ssh/id_ecdsa type-1
debug1: ID 파일 /home/raven/.ssh/id_ecdsa-cert type-1
debug1: 프로토콜 2.0의 호환 모드를 활성화합니다.
debug1: 로컬 버전 문자열 SSH-2.0-OpenSSH_6.4
debug1: 원격 프로토콜 버전 2.0, 원격 소프트웨어 버전 OpenSSH_5.9
debug1: 일치: OpenSSH_5.9 및 OpenSSH_5*
debug2: fd 3 O_NONBLOCK 설정
debug1: SSH2_MSG_KEXINIT가 전송되었습니다.
debug1: SSH2_MSG_KEXINIT 수신됨
디버그 2: kex_parse_kexinit:
---- 잘림 - 많은 kexinit 메시지----
debug2: kex_parse_kexinit: first_kex_follows 0
debug2: kex_parse_kexinit: 예약됨 0
debug2: mac_setup: hmac-md5를 찾았습니다.
debug1: kex: 서버->클라이언트 aes128-cbc hmac-md5 없음
debug2: mac_setup: hmac-md5를 찾았습니다.
debug1: kex: 클라이언트->서버 aes128-cbc hmac-md5 없음
debug1: SSH2_MSG_KEX_ECDH_INIT를 보냅니다.
debug1: SSH2_MSG_KEX_ECDH_REPLY 예상
debug1: 서버 호스트 키: RSA 6c:4c:41:a3:d2:04:66:a1:e8:66:2d:35:4c:79:6a:98
debug1: 호스트 "remote_host"가 알려져 있으며 RSA 호스트 키와 일치합니다.
debug1: /home/raven/.ssh/known_hosts:4에서 키가 발견되었습니다.
debug1: ssh_rsa_verify: 서명이 정확함
디버그 2: kex_derive_keys
debug2: set_newkeys: 모드 1
debug1: SSH2_MSG_NEWKEYS가 전송되었습니다.
debug1: SSH2_MSG_NEWKEYS가 필요합니다.
debug2: set_newkeys: 모드 0
debug1: SSH2_MSG_NEWKEYS 수신됨
debug1: 서버가 로밍을 허용하지 않습니다.
debug1: SSH2_MSG_SERVICE_REQUEST가 전송되었습니다.
debug2:service_accept:ssh-userauth
debug1: SSH2_MSG_SERVICE_ACCEPT를 받았습니다.
debug2: 키: /home/raven/.ssh/id_rsa ((nil)),
debug2: 키: /home/raven/.ssh/id_dsa ((nil)),
debug2: 키: /home/raven/.ssh/id_ecdsa ((nil)),
debug1: 계속할 수 있는 인증: 공개 키, 비밀번호, 키보드 상호 작용
debug1: 다음 인증 방법: publickey
debug1: 개인 키를 사용해 보세요: /home/raven/.ssh/id_rsa
debug1: 개인 키를 사용해 보세요: /home/raven/.ssh/id_dsa
debug1: 개인 키를 사용해 보세요: /home/raven/.ssh/id_ecdsa
debug2: 패킷을 보내지 않습니다. 메서드를 비활성화합니다.
debug1: 다음 인증 방법: 키보드 상호 작용
디버그 2: userauth_kbdint
debug2: 키보드 상호작용 패킷을 보냈고 응답을 기다리고 있습니다.
디버그 2: input_userauth_info_req
debug2: input_userauth_info_req: num_prompts 1
비밀번호:
디버그 2: input_userauth_info_req
debug2: input_userauth_info_req: num_prompts 0
debug1: 인증에 성공했습니다(키보드 상호 작용).
Remote_host([remote_host]:22)에 인증되었습니다.
debug1: 채널 0: 새 [클라이언트 세션]
debug2: 채널 0: 보내기
debug1: 요청[이메일 보호됨]
debug1: 대화형 세션에 들어갑니다.
debug2: 콜백 시작
debug2: fd 3 TCP_NODELAY 설정
debug2: client_session2_setup: ID 0
debug1: 환경을 보냅니다.
debug1: 전송 환경 LANG = en_GB.UTF-8
debug2: 채널 0: 환경 확인 요청 0
debug1: 명령 보내기:가동 시간
debug2: 채널 0: 실행 확인 요청 1
debug2: 콜백 완료
debug2: 채널 0: 열기 확인 rwindow 0 rmax 32768
debug2: 채널 0: rcvd 조정 2097152
debug2: 채널_input_status_confirm: 유형 99 ID 0
debug2: 채널 0에서 실행 요청 수락
debug1: client_input_channel_req: 채널 0 rtype 종료 상태 응답 0
debug1: client_input_channel_req: 채널 0 rtype[이메일 보호됨]답글 0
debug2: 채널 0: rcvd eow
debug2: 채널 0: close_read
debug2: 채널 0: 입력 켜기 -> 끄기
debug2: 채널 0: rcvd eof
debug2: 채널 0: 출력 켜기 -> 드레인
debug2: 채널 0: obuf 비어 있음
debug2: 채널 0: close_write
debug2: 채널 0: 출력 드레인 -> 꺼짐
debug2: 채널 0: rcvd가 닫혔습니다.
debug2: 채널 0: 거의 죽었습니다.
debug2: 채널 0: gc: 사용자에게 알림
debug2: 채널 0: gc: 사용자 분리됨
debug2: 채널 0: 닫힌 보내기
debug2: 채널 0: 작동하지 않음
debug2: 채널 0: 가비지 수집
debug1: 채널 0: 유휴: 클라이언트 세션, nchannels 1
전송됨: 전송된 2472바이트, 수신된 1816바이트, 0.8초
초당 바이트 수: 전송 3032.4, 수신 2227.7
debug1: 종료 상태 0

답변1

ssh user@device_host kill line *안의 "*"는 서버로 전송되기 전에 로컬 쉘에 의해 해석됩니다. 다음과 같이 명령을 인용해야 합니다.

ssh user@device_host 'kill line *'

관련 정보