메뉴 닫기

WinSCP 를 통한 윈도우서버 백업

1. WinSCP 는 무었인가?

WinSCP 소개 링크

WinSCP 는 누구나 자유로이 다운로드 하여 사용할 수 있는 프리웨어 소프트웨어입니다.

또한 오픈소스 기반이므로 아무런 제약없이 사용을 할 수 가 있으며 GUI환경도 제공하고 있어 손쉽게 서버에 접속하여 파일 다운로드 및 업르드를 할 수 있다.

그리고 WinSCP 는 아마존 AWS S3 서버의 클라이언트 기능도 지원하며, 사용자가 아마존 S3 서버의 계정을 보유하고 있다면 파일 전송 / 수신이 가능하다.

해당 프로그램을 이용하는 이유는 윈도우에 리눅스 서버로 SSH 포트를 이용하여 파일을 주고 받을 수 있다는 점이다.

 

 

2. WinSCP 설치

다운로드 링크 :  https://winscp.net/eng/download.php 

해당 사이트에서 최신 버전을 다운로드하여 설치 진행. 최신 버전은5.21 버전을 다운로드 하면 된다.

만약 설치 프로그램에서 “한국어”를 선택할 수 없다면, 먼저 영문 설치 버전을 설치한 후 translaiton page로 가서 korean언어팩을 다운로드 받습니다. WinSCP가 실행되는 디렉터리(5.11이상 버전에서는 “Translations”)에 ZIP 압축파일을 풉니다.

 

3. 특징

•  그래픽 유저 인터페이스(GUI)

•  다국어 지원

•  Windows 운영체제와 통합 환경 지원(드래그 앤 드롭, URL, 바로 가기 아이콘)

•  모든 일반적인 파일 작업 지원

•  SSH-1과 SSH-2를 통한 SFTP 및 SCP 프로토콜, 기존 FTP 프로토콜, WebDAV 프로토콜 지원

•  배치 파일 스크립트와 명령 줄 인터페이스, 고급 프로그래밍 작업을 위한 .NET 어셈블리 지원

•  자동으로 일부 또는 전체 디렉터리 동기화

•  통합된 텍스트 편집기

•  SSH 암호, 키보드 대화식(keyboard-interactive), 공개 키 및 Kerberos (GSS) 인증 지원

•  SSH를 통한 공개키 인증을 완벽하게 지원하는 PAGEANT(PuTTY 인증 에이전트)와 통합

•  Windows 탐색기 및 Norton Commander 형태의 인터페이스 지원

•  옵션에서 기본 암호로 세션 정보 저장 보호 기능 지원

•  옵션에서 레지스트리 대신 구성 파일(INI)을 사용한 독립적인 실행 지원으로 이동식 저장장치에서 실행 가능

 

4. WInSCP 설치 완료후 화면

WinSCP 설치화면
WinSCP 설치화면

 

5. 파워쉘을 통한  예제 , 디렉토리 생성, 리스트 등등

# WinSCP .NET 어셈블리 로드
Add-Type -Path “C:\Program Files (x86)\WinSCP\WinSCPnet.dll” # DLL 경로는 설치 파일에 따라 다를수 있음
 
# 세션 옵션 설정
$sessionOptions = 새 개체 WinSCP.SessionOptions -속성 @{
프로토콜 = [WinSCP.프로토콜]::Sftp
HostName = 호스트명 or 아이피
PortNumber = 접속포트
UserName = s유저id
Password = 패스워드
SshHostKeyFingerprint = Get-SshFingerprint$BACKUP_SERVER_IP
}

$session = 새 개체 WinSCP.Session
$transferOptions = 새 개체 WinSCP.TransferOptions
$transferOptions.FileMask = “|*.bin” # 제외할 파일 ,파이프 앞은 포함 뒤는 제외
$transferOptions.AddRawSettings(“SendBuf”, “0”);
노력하다
{
# 연결
$session.Open($sessionOptions)
 
$session.ListDirectory(“/test/”) # 폴더 리스트
$session.CreateDirectory(“/test/”) #폴더 생성시 사용
 
# 실제 사용할 파워셀 코드
}
마지막으로
{
# 세션 종료
$세션.디스포즈()
}
 
5-1  WinSCP의 경우 SSH  포트를 이용하기 때문에 윈도우 서버에서 -> 리눅스 서버등으로 연결할때 사용하면
 
SAMBA 및 FTP 클라이언트 보다 보안 적인 부분을 높일 수가 있다.
 
6. 참고 예제
WinSCP 는 다양한 참고 예제가 있으며  미러링 , 파일 전송 등 다양하게 이용을 할 수 있다.
 
  1) WinSCP는 SSH를 이용하기 때문에 인증 키 값이 필요하다. 아래 예제는 인증키를 자동으로 가져 오는 샘플 예제입니다.
 
기능 Get-SshFingerprint {
매개변수( [문자열]$ssh_server )
 
# WinSCP .NET 어셈블리 로드
추가 유형 -경로 “${env:ProgramFiles(x86)}\WinSCP\WinSCPnet.dll”
 
# 세션 옵션 설정
$sessionOptions = 새 개체 WinSCP.SessionOptions -속성 @{
프로토콜 = [WinSCP.프로토콜]::Sftp
HostName = 호스트이름 or 아아피
PortNumber = 포트
UserName = 유저 아이디
Password = 유저 패스워드
}
 
# 호스트 키 스캔
$session = 새 개체 WinSCP.Session
노력하다
{
$fingerprint = $session.ScanFingerprint($sessionOptions, “SHA-256”)
}
 
마지막으로
{
$세션.디스포즈()
}
# 호스트 키를 파이프라인에 출력합니다.
쓰기 출력$fingerprint
}
 
 

※ 테스트를 위한 환경은 iwinv 클라우드 를 이용하면 환경을 쉽게 구축 할 수 있습니다.

Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x