Prerequisite
Bastion host를 통해 Private subnet의 Host로 접속하기 위한 Localhost의 Port Forwarding 설정하는 방법에 대해 안내합니다.
즉, 이미 Bastin host가 구성되어 있는 상태에서 ssh 명령어를 통한 Tunneling 이용 방법에 대해 안내합니다.
Process
ssh 명령어의 -L, -R 옵션이 존재하며, 이용되는 서버에 따라 달리 적용합니다.
Local Forwarding -L (-N 포워딩 옵션)
ssh -i [KEY.pem] [User@BastionIP] -p [SSHPort] -N -L [LocalForwadingPort]:[DestinationServerIP]:[DestinationPort]
ex> ssh -i hsk-keypair.pem ec2-user@52.79.226.176 -N -L 50001:10.0.100.43:22
위 명령어를 해석하면, localhost의 50001포트는 52.79.226.176 호스트의 22번 포트를 통해 10.0.100.43 호스트의 22번 포트로 포워딩하라는 뜻입니다.
포트포워딩 상태이므로 백그라운드 실행 및 다중의 Destination Server를 적용하면 아래와 같이 이용할 수 있습니다.
ssh -i hsk-keypair.pem ec2-user@52.79.226.176 -p 22 -N -L 50001:10.0.100.43:22 -L 50002:10.0.100.45:22 &
이 후 해당 Terminal 또는 새로운 Termial을 통해 Forwarding 설정 한 Port를 통해 Destination Server로 접속을 할 수 있게 됩니다.
이 때, User는 Destination Server의 User가 적용되어야 합니다.
$ ssh -i hsk-keypair.com ec2-user@localhost -p 50001
Last login: Mon Jan 16 13:31:53 2023 from ip-10-0-200-49.ap-northeast-2.compute.internal
__| __|_ )
_| ( / Amazon Linux 2 AMI
___|\___|___|
https://aws.amazon.com/amazon-linux-2/
[ec2-user@ip-10-0-100-43 ~]$
$ ssh -i hsk-keypair.pem ec2-user@localhost -p 50002
Last login: Mon Jan 16 13:35:53 2023 from ip-10-0-200-49.ap-northeast-2.compute.internal
__| __|_ )
_| ( / Amazon Linux 2 AMI
___|\___|___|
https://aws.amazon.com/amazon-linux-2/
[ec2-user@ip-10-0-100-45 ~]$
Pwershell의 경우 openssh를 이용할 수 있으나, Key 파일의 권한문제를 해결해야 합니다.
CMD에서 실행해야 합니다. (상속권한을 제거한 후 해당 PC 내 로그인 계정의 권한을 제한하는 방식입니다.
icacls.exe myec2.pem /reset icacls.exe myec2.pem /grant:r %username%:(R) icacls.exe myec2.pem /inheritance:r
C:\Users\uu>icacls.exe hsk-keypair2.pem /reset
처리된 파일: hsk-keypair2.pem
1 파일을 처리했으며 0 파일은 처리하지 못했습니다.
C:\Users\uu>icacls.exe hsk-keypair2.pem /grant:r %username%:(R)
처리된 파일: hsk-keypair2.pem
1 파일을 처리했으며 0 파일은 처리하지 못했습니다.
C:\Users\uu>icacls.exe hsk-keypair2.pem /inheritance:r
처리된 파일: hsk-keypair2.pem
1 파일을 처리했으며 0 파일은 처리하지 못했습니다.
위 명령어를 순차적으로 실행 후 Key 파일의 권한을 확인하면 권한이 변경되어 있는 것을 확인할 수 있습니다.
이후, Powershell로 ssh 터널링을 해주면 아래와 같이 접속이 되는 것을 확인할 수 있습니다.
PS C:\Users\uu> ssh -i .\hsk-keypair2.pem ec2-user@52.79.226.176 -N -L 50001:10.0.100.43:22
PS C:\Users\uu> ssh -i .\hsk-keypair2.pem ec2-user@localhost -p 50001
Last login: Mon Jan 16 15:01:30 2023 from ip-10-0-200-49.ap-northeast-2.compute.internal
__| __|_ )
_| ( / Amazon Linux 2 AMI
___|\___|___|
https://aws.amazon.com/amazon-linux-2/
[ec2-user@ip-10-0-100-43 ~]$
Reference
https://www.ssh.com/academy/ssh/tunneling-example ( )
https://dabid.tistory.com/entry/%EC%9C%88%EB%8F%84%EC%9A%B010%EC%97%90%EC%84%9C-SSH-%EC%A0%91%EC%86%8D-%EC%8B%9C-pem-%ED%8C%8C%EC%9D%BC-%EA%B6%8C%ED%95%9C%EB%B3%80%EA%B2%BD (윈도우10에서 SSH 접속 시 pem 파일 권한변경)
댓글
댓글 0개
댓글을 남기려면 로그인하세요.