[flutter] 플러터에서의 원격 서버와의 원격 셸 실행 방법

플러터(Flutter)는 Google에서 개발한 UI 프레임워크로, 단일 코드베이스로 iOS와 Android 애플리케이션을 개발할 수 있는 기능을 제공합니다. 이번에는 플러터에서 원격 서버와의 원격 셸 실행 방법에 대해 알아보겠습니다.

1. SSH 접속 설정

원격 서버와 연결하기 위해서는 SSH(Secure Shell) 접속 설정이 필요합니다. 원격 서버에 접속하기 위해서는 해당 서버에 대한 SSH 사용자 계정이 있어야 합니다. 이 계정으로 접속하기 위해 필요한 정보는 다음과 같습니다.

2. 플러터에서 SSH 패키지 설치

플러터 프로젝트에서 원격 서버와의 연결을 위해 SSH 패키지를 설치해야 합니다. pubspec.yaml 파일에 아래와 같이 의존성을 추가합니다.

dependencies:
  ssh2: ^2.0.0

의존성 추가 후 터미널에서 flutter packages get 명령을 실행하여 패키지를 다운로드합니다.

3. SSH 연결 설정

SSH 패키지를 사용하여 원격 서버와의 SSH 연결을 설정합니다. 아래는 연결 설정의 예시 코드입니다.

import 'package:ssh2/ssh2.dart';

void main() async {
  var client = SSHClient(
    host: '원격 서버 IP 주소',
    port: 22, // SSH 포트 번호
    username: '사용자 계정명',
    passwordOrKey: '사용자 계정 비밀번호 또는 SSH 키',
  );
  
  try {
    await client.connect(); // SSH 연결
    print('Connected');

    var result = await client.execute('ls'); // 원격 셸에서 실행할 명령어
    print(result);
  } finally {
    client.disconnect(); // SSH 연결 종료
    print('Disconnected');
  }
}

위 코드에서 host, port, username, passwordOrKey 값에 각각 원격 서버의 정보를 입력해주어야 합니다. client.execute() 메서드를 사용하여 원하는 셸 명령어를 실행할 수 있습니다.

4. 실행 결과 확인

위와 같이 SSH 연결 및 셸 명령어 실행 코드를 작성한 후, 애플리케이션을 실행하여 결과를 확인할 수 있습니다. 결과는 콘솔에 출력되며, 필요에 따라 화면에 표시하는 등 다양한 방법으로 활용할 수 있습니다.

플러터를 사용하면 손쉽게 원격 서버와의 연결을 설정하고 명령어를 실행할 수 있습니다. 이를 활용하여 원격 서버와의 상호작용을 통해 플러터 애플리케이션의 기능을 확장할 수 있습니다.

참고 자료