/
목적 서버에 JUMP해야 하지만 JUMPHOST를 사용할 수 없는 경우 파일 전송

목적 서버에 JUMP해야 하지만 JUMPHOST를 사용할 수 없는 경우 파일 전송


Xftp(Xshell, Xftp: Private Key A) ---> Bastion Server(Public key of A, Private Key B ) --->Target(Public key of B )

 

개인 키 B를 Xshell(Xagent)에서 서비스할 수 있다면 Jumphost 기능을 통해서 Target 서버로 바로 접속이 가능해서 터미널 작업 및 파일 전송을 할 수 있지만, 정책적으로 혹은 다른 이유로 개인 키 B를 Xshell이 사용할 수 없는 경우입니다.

명령어를 입력할 수 있는 터미널이 제공되는 환경이라면 Bastion 서버에서 SSH 명령으로 Target에 접속할 수 있습니다. 터미널이 없는 파일 전송 프로그램이라면 다음과 같은 설정을 통해서 Target 서버에 접속할 수 있습니다.

Xftp에서 직접 접속할 때

  1. Bastion 서버에서 스크립트 파일 생성

    user@bastion: ~$ vi ssh2target.sh #!/bin/bash keyfile=~/.ssh/id_ecdsa keypass=***** command="$1" eval $(ssh-agent) >/dev/null &&(expect >/dev/null << EOF spawn ssh-add ${keyfile} expect "Enter passphrase" send "${keypass}\r" expect eof EOF )&& ssh -A test@ubuntu2204 ${command}; kill -9 $SSH_AGENT_PID

     

  2. Xftp 세션 생성

    1. SFTP 설정
      호스트 정보는 Bastion 서버여야 합니다. 그리고 ‘설정’을 누릅니다.

      image-20241107-013710.png

    2. '사용자 정의 SFTP 서버 사용 기능' 적용

      image-20241107-011711.png

      빨강 박스 안은 sftp subsystem 경로입니다. 이는 서버 OS마다 다르므로 /etc/ssh/sshd_config 파일을 참고하여 지정합니다.

      • Ubuntu 계열: /usr/lib/openssh/sftp-server

      • Redhat, CentOS, Rocky 계열: /usr/libexec/openssh/sftp-server

Xshell에서 Xftp를 호출할 때

  1. Bastion 서버에서 스크립트 파일 생성. 위 'Xftp에서 접속할 때'와 같은 스크립트입니다.

    user@bastion: ~$ vi ssh2target.sh #!/bin/bash keyfile=~/.ssh/id_ecdsa keypass=***** command="$1" eval $(ssh-agent) >/dev/null &&(expect >/dev/null << EOF spawn ssh-add ${keyfile} expect "Enter passphrase" send "${keypass}\r" expect eof EOF )&& ssh -A test@ubuntu2204 ${command}; kill -9 $SSH_AGENT_PID
  2. Xshell 세션 파일 생성

    빨강 박스 안 sftp subsystem 경로입니다. 자세한 내용은 위 'Xftp에서 접속할 때' 참조합니다.

  3. 세션 실행 후 툴바에서 Xftp를 실행합니다.

Xshell에서 바로 Target 서버로 접속

  1. Bastion 서버에서 스크립트 파일 생성. 위 'Xftp에서 접속할 때'와 같은 스크립트입니다.

    user@bastion: ~$ vi ssh2target.sh #!/bin/bash keyfile=~/.ssh/id_ecdsa keypass=***** command="$1" eval $(ssh-agent) >/dev/null &&(expect >/dev/null << EOF spawn ssh-add ${keyfile} expect "Enter passphrase" send "${keypass}\r" expect eof EOF )&& ssh -A test@ubuntu2204 ${command}; kill -9 $SSH_AGENT_PID
  2. Xshell 세션의 로그인 스크립트 기능 이용

     

Related content

Xftp와 연동한 파일 전송
Xftp와 연동한 파일 전송
More like this
Xftp와 연동한 파일 전송
Xftp와 연동한 파일 전송
More like this
호스트 키 관리ᅠᅠᅠ
호스트 키 관리ᅠᅠᅠ
More like this
호스트 키 관리ᅠᅠᅠ
호스트 키 관리ᅠᅠᅠ
More like this
점프 호스트
점프 호스트
More like this
점프 호스트
점프 호스트
More like this