루팅 된 안드로이드 폰에 사용 가능한 명령 행 SSH 클라이언트가 있습니까?


23

물론 ConnectBot이 있지만 스크립팅 할 수있는 것을 찾고 있습니다.

편집 : 여기에서 명확히하기 위해 터미널에서 스크립트를 실행하는 데 관심이 없습니다 . 내가하고 싶은 일은 자동 / 예약 방식으로 SSH 명령을 실행하는 것입니다. Tasker와 Locale Execute는 cron과 동일 하며 스크립트 에서 실행하려면 'ssh'명령 만 있으면 됩니다.


스크립팅을 위해, 내가 테스 커를 사용하고자하고있어, 직접 또는 로케일을 통해 플러그인 실행 appbrain.com/app/de.elmicha.app.LocaleExecute
TREE

답변:


12

Google 에서 터미널 에뮬레이터 를 설치할 수 있습니다 . 또는 Better Terminal Emulator Pro가 있습니다. 루트가 아닌 전화로 터미널 에뮬레이터를 사용해 보았지만 제대로 작동하는 것 같습니다.

Better Terminal Emulator Pro에는 dropbear ssh client가 포함되어 있으며 명령 행 또는 실행기를 통해 시작할 수 있습니다. 저자의 추가 정보 .


터미널 에뮬레이터는 내 장치와 다른 많은 사람들의 장치에서 일관되게 강제 종료됩니다. 또한 Tasker 또는 명령 줄에서 실행할 수 있다는 표시가 없습니다.
TREE

Better Terminal Emulator Pro에는 dropbear 클라이언트 바이너리가 포함되어 있습니다. 해당 정보를 포함하도록 답변을 업데이트하면 수락하겠습니다.
TREE

1
이상적으로는 암호화와 관련하여 Better Terminal Emulator Pro와 같은 폐쇄 형 소스 소프트웨어를 사용해서는 안됩니다. Cyanogen 사람들의 지침을 사용하여 소스에서 직접 dropbear ssh를 빌드하는 것이 좋습니다. 아마 BTEP가 그랬을 것입니다.
Jeff Burdges

1
자체 dropbear ssh 클라이언트 사본을 설치하는 다양한 오픈 소스 안드로이드 응용 프로그램이 있으며 단순히 symlink를 추가하면 Google의 터미널 에뮬레이터에서 작동합니다.
Jeff Burdges

google androlib.com/android.application.com-android-term-jpAz.aspx의 터미널 에뮬레이터에 대한 링크 는 "이 응용 프로그램은 Android 마켓에서 제거 된 것 같습니다"라고 Google Play 스토어에서 Google에서 '터미널 에뮬레이터'를 볼 수 없습니다 . 구글 플레이 스토어의 첫 번째 결과는 jack palevich의 Android 터미널 에뮬레이터이지만 ssh는 없습니다.
barlop

17

내 원래의 질문은 ssh 바이너리에 관한 것이며 그에 대한 답변이 있으므로 해당 답변을 수락합니다. 그러나 언젠가 누군가에게 흥미로울 수있는 다른 방법이 있습니다.

Tasker + ConnectBot을 사용하여 일정에 따라 임의의 원격 (또는 로컬, 로컬 실행이 더 좋습니다) 명령을 실행할 수 있습니다.

1 단계 : ConnectBot에서 연결을 설정합니다.

  • 별명이 다른 한 ConnectBot에서 중복 연결을 가질 수 있습니다. 두 번째를 만들려면 먼저 user @ host에서 떨어져 이름을 바꿔야합니다. 길게 누르고 "Edit Host"를 선택하여 이러한 변경을 수행하십시오.
  • 자동화를 위해이 키를 사용할 수 있도록 비밀번호없이 ssh 키를 설정하려고합니다.
  • 연결이 실제로 작동하면 "로그인 자동화"를 사용하여 실행하려는 원격 명령을 추가 할 수 있습니다. 마지막 명령 뒤에 enter가 전송되도록 끝에 빈 줄이 있는지 확인하십시오. enter 또는;를 사용하십시오. 명령을 분리합니다. 나는 "echo hello"와 같은 것을 테스트로 사용하는 것이 좋으며 연결을 열어두고 싶지 않은 경우 끝에 "종료"하는 것이 좋습니다.
  • 이것을 독립적으로 테스트하십시오.

2 단계 : connectbot을 호출하는 Tasker Task를 만듭니다.

  • Tasker에서 새 작업을 만듭니다.
  • 활동을 추가하십시오. 기타에서 "액션 의도"를 선택하십시오.
  • 필드는 다음과 같습니다.
    • 액션 : android.intent.action.VIEW
    • 고양이 : 기본
    • 데이터 : ssh url, "ssh : // user @ host / # alias"형식 (따옴표 제외). 여기서 별명, 사용자 및 호스트 1 단계에서 설정 한 별명과 일치 해야합니다 .
    • 대상 : 활동
    • 테스트를 클릭하십시오. Connectbot이 열리고 명령이 원격 호스트에서 실행되어야합니다.

3 단계 : 일반적으로 Tasker에서이 작업을 사용하십시오.


프로그래밍 방식으로, 예를 들어 Tasker 및 호출 의도를 통해 연결을 정의하는 방법이 있습니까?
Dang Khoa

나는 그것에 대해 확실하지 않다. 위의 의도 정보를 어떻게 찾았는지 정확하게 기억하지 못하지만 기본적으로 표준 ssh URL입니다. 앱의 의도를 조사 할 수있는 도구가 있지만 사용하지는 않았습니다.
TREE

ConnectBot의 기본값을 제거하고 다른 ssh 클라이언트 (예 : BTEP)를 설치 한 경우 ssh URL에 사용할 앱을 묻는 메시지가 표시됩니다. 이것은 위의 내용이 "VIEW"와 ssh 형식의 표준이라는 것을 강조합니다. 이 경우 ConnectBot에만 적용되는 유일한 것은 끝에 #alias입니다.
TREE

5

오래된 스레드이지만 BTEP에 대한 의견을 +1하고 싶었습니다.

또한 BTEP의 ssh 바이너리를 사용하고 있지만 링크하지 않고 경로에서 호출합니다 ./data/data/com.magicandroidapps.bettertermpro/bin/ssh root@192.168.1.1

또는 한 쌍의 키를 생성하고 공개 키 인증을 사용하십시오.

다양한 스크립트에서 SL4A r4의 위 명령을 사용하고 정상적으로 작동합니다. :)

이 작업을 수행하기 전에 a + x /data/data/com.magicandroidapps.bettertermpro/home/.ssh를 chmod해야했습니다.

이 작업이 완료되고 TitaniumBackup으로 BTEP를 백업 / 복원하면 권한이 유지됩니다. 즉, 새로운 ROM을 플래시하면 앱을 복원 할 수 있으며 모든 스크립트가 다시 작동합니다.


5

Android 4.4를 실행할 때 BotBrew Basil Experimental 을 성공적으로 사용 했습니다 . BotBrew Basil Experimental은 apt-get을 기반으로하므로 APK 및 부트 스트랩 설치 후 apt-get install dropbearSSH 클라이언트 (및 서버)를 설치하기 위해 루트 쉘에서 수행했습니다.


3

터미널 에뮬레이터와 quickssh를 설치하십시오. Quickssh에는 dropbear도 포함되어 있습니다. 비용이 많이 들지 않습니다. 이는 매우 간단하고 dropbear를 기반으로하기 때문에해서는 안됩니다.

https://play.google.com/store/apps/details?id=berserker.android.apps.sshdroid

find -name ssh user @ host

문제 해결됨


1
그 프로그램 (beserker의 sshdroid)을 보면 ssh 서버 GUI 만 보입니다. 그런 다음 잭으로 터미널 에뮬레이터를 시도했지만 ssh 명령이 추가되지 않았습니다. 그리고 playsstore에서 quickssh를 찾지 못했습니다. 나는 작은 가격이 있고 ssh 클라이언트가 아닌 quicksshd (testesilo) 만 볼 수 있습니다.
barlop

2

터미널 에뮬레이터는 스크립트 *를 절대적으로 지원합니다. 혐오 자들을 믿지 마십시오. 아직 익숙하지 않은 경우 BASH 셸 스크립팅을 배워야합니다. 스크립트를 작성하여 SD 카드에 저장하십시오. Term에서 "sh filename"으로 실행하십시오.

SSH와 관련하여 "스크립트"로 무엇을하고 싶은지 명확히하면 더 나은 권장 사항을 줄 수 있습니다.

* (실제로 BASH 스크립트를 지원하는 Android OS이므로 터미널 에뮬레이터는 Android 쉘에 대한 액세스 권한 만 부여하므로 본질적으로 스크립팅이 가능합니다)


질문을 업데이트했습니다. ssh로 스크립트를 호출하고 싶지 않습니다. 스크립트에서 ssh를 호출하고 싶습니다.
TREE

내가 뭘했는지 정확히 다시 말하지만, 당신이 몇 가지 구체적인 내용을 원한다면 나는 더 많은 도움을 줄 수 있습니다.
ch3mi0n

2

스크립트에서 ssh를 호출하려면 ssh 키를 설정하기 만하면됩니다. 웹에는 백만 가지 방법이 있지만 Cyanogen 위키에는 Android 사용자에게 더 적합한 페이지가 있습니다. 키를 설정하면 일반적인 ssh 명령은 다음과 같습니다. ssh -i / PATH / TO / KEY USER @ IP

스크립트에 넣고 실행하면 원격 시스템에 로그인됩니다.

하지만 여기 당신이하고 싶은 생각이 있습니다. 원격 컴퓨터에서만 명령을 실행하려면 작은 따옴표로 묶으십시오. ssh -i / PATH / TO / KEY USER @ IP 'command'

로그인하지 않고 원격 컴퓨터에서 명령을 실행합니다. 옵션, 파이프, 리디렉션 등을 사용하여 명령을 실행할 수 있지만 간결하게 유지하는 것이 더 좋습니다. 지연을 제외하고 명령을 로컬로 실행하는 것과 동일하게 보이며 동일하게 사용할 수 있습니다.

로케일 실행은 실행할 명령에 대해 까다로울 수 있습니다. 작동하지 않으면 스크립트에 넣고 Locale Execute를 사용하여 스크립트를 실행하십시오.

또한 전화에있는 ssh 바이너리에 문제가 있었고 / system / xbin에서 옮기고 / system / xbin / ssh에서 Better Terminal Emulator ssh 바이너리에 대한 링크를 만드는 것이 더 안정적이라는 것을 알았습니다. BTEP 바이너리는 /data/data/com.magicandroidapps.bettertermpro/bin/ssh에 있습니다.


2

BotbrewokpgBSD 용 또는 최근 APT데비안 용과 같은 Android 용 패키지 관리자입니다 . 꽤 좋은. 패키지로 ssh 클라이언트가 없지만 자체 패키지를 작성하는 데 익숙해지면 너무 어렵지 않습니다. 또한 다른 C / C ++ / etc 바이너리 및 라이브러리를 빌드하려는 경우 툴체인으로 유용 할 수 있습니다.

따라서 이것이 직접적인 대답은 아니지만 일부 사람들이 아는 것이 유용 할 수 있습니다.


좋은. 그것은 Play 스토어도있다 : play.google.com/store/apps/details?id=com.inportb.botbrew
TREE

안타깝게도 botbrew.com이 다운되어 설치를 차단합니다.
TREE

패키지가 github에 호스팅되어 있다고 생각하기 때문에 이상합니다.
Ehtesh Choudhury


-1

AndFTP는 구성하는 모든 포트를 통해 연결할 수 있으므로 SSH를 통해 연결할 수 있습니다. 그러나 사용법을 스크립팅하는 것이 얼마나 쉬운 지 잘 모르겠습니다. 호스팅 서버에 항상 앱을 직접 사용하고 훌륭하게 작동합니다.

터미널 에뮬레이터로 SSH를 사용할 수 있는지 확실하지 않지만 시도해 볼 수도 있습니다. 나는 ADB와 관련하여 너무 게으른 일을하기 위해 그 응용 프로그램을 자주 사용합니다.


AndFTP는 훌륭합니다. 터미널 에뮬레이터는 스크립트 가능합니까?
TREE

다른 앱이 없으면 그렇게 생각하지 않습니다. 위에서 언급했듯이 Tasker가 아마도이 방법 일 것입니다.

-1

Tasker에 ssh 플러그인을 사용 하시겠습니까? 그러면 루트 또는 ssh 바이너리가 필요하지 않습니다.


7
이름 하나? 귀하의 답변은 다음에 도움이 될 것입니다. :)
Izzy

Tasker 용 "SSH Plugin Paid"가 있지만, 오래되어 더 이상 개발되지 않았습니다. 오류 처리는 거의 존재하지 않으므로 단지 ssh이며 그 이상은 아닙니다. 그러나 작동합니다.
franc

-3

간단한 ssh 클라이언트가 흥미 롭다면 Android-NDK Bionic 라이브러리 drobpear-ssh-client-only로 만들었습니다. ftp://ftp.simtreas.ru/pub/my/dropbear/dropbear-ssh-only.tgz 소스 및 ftp://ftp.simtreas.ru/pub/my/dropbear/ssh 바이너리


이것은 슬프게도 일반적인 대답이 아니며 x86 / ARM / MIPS 중 하나, 아마도 ARM에서만 작동합니다. 또한 링크 된 내용은 아마도 언젠가는 사라질 것입니다. 대부분의 사용자 정의 ROM에는 이미 작동중인 순수 cmdline ssh 클라이언트가 포함되어 있습니다.
ce4
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.