플러터(Flutter)는 Google에서 개발한 UI 프레임워크로, 단일 코드베이스로 iOS와 Android 애플리케이션을 개발할 수 있는 기능을 제공합니다. 이번에는 플러터에서 원격 서버와의 원격 셸 실행 방법에 대해 알아보겠습니다.
1. SSH 접속 설정
원격 서버와 연결하기 위해서는 SSH(Secure Shell) 접속 설정이 필요합니다. 원격 서버에 접속하기 위해서는 해당 서버에 대한 SSH 사용자 계정이 있어야 합니다. 이 계정으로 접속하기 위해 필요한 정보는 다음과 같습니다.
- 서버 IP 주소
- SSH 포트 번호 (기본값은 22)
- 사용자 계정명
- 사용자 계정 비밀번호 또는 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 연결 및 셸 명령어 실행 코드를 작성한 후, 애플리케이션을 실행하여 결과를 확인할 수 있습니다. 결과는 콘솔에 출력되며, 필요에 따라 화면에 표시하는 등 다양한 방법으로 활용할 수 있습니다.
플러터를 사용하면 손쉽게 원격 서버와의 연결을 설정하고 명령어를 실행할 수 있습니다. 이를 활용하여 원격 서버와의 상호작용을 통해 플러터 애플리케이션의 기능을 확장할 수 있습니다.
참고 자료
- Flutter 공식 문서: https://flutter.dev
- SSH 패키지: pub.dev/packages/ssh2