ssh(Secure Shell Protocol)는 네트워크 프로토콜 중 하나로 컴퓨터와 컴퓨터가 같은 네트워크를 통해 서로 통신을 할 때 보안적으로 안전하게 통신하기 위해 사용하는 프로토콜입니다.
ssh는 주로 '데이터 전송' 혹은 '원격 제어'를 위해 사용이 됩니다.
예를 하나씩 들어보도록 하겠습니다.
데이터 전송은 github를 생각해 보시면 좋을 것 같습니다.
저희가 작성한 코드를 원격 저장소인 github에 올립니다.
이때 ssh를 사용하는 것이지요.
원격 제어는 AWS로 예를 들면 좋을 것 같습니다.
AWS에 원격으로 해당 머신에 명령을 내리기 위해 ssh를 통해 접속을 합니다.
ssh가 어떠한 역할을 하는지 충분히 이해하셨을 것이라고 생각이 됩니다. 이제 ssh를 설치하고 사용해 보도록 하겠습니다.
ssh 설치하기
ssh설치는 root계정에서 진행을 하거나 모든 명령어 앞에 sudo를 붙여야 합니다.
저는 root계정에서 진행을 하도록 하겠습니다.
일반 계정을 로그아웃하지 않고 root계정을 사용하기 위해 아래의 명령을 사용합니다.
su -
root유저로 들어가게 됩니다.
apt install openssh-server
ssh 서버를 설치하는 것입니다.
(거의 대부분 설치가 되어 있을 것입니다. root계정이 아니라면 앞에 sudo를 붙여 주세요.)
vi /etc/ssh/sshd_config
파일이 열리게 되는데 이때 2가지를 바꾸어 줄 것입니다.
- #Port 22 -> Port 4242
나중에 ssh를 접근할 때에 4242 포트만 접근이 가능하도록 설정을 하는 것입니다. (보안이 강화되겠죠.)
- #PermitRootLogin prohibit-password -> PermitRootLogin no
root 계정으로 로그인 허용 여부(yes: 허용, no: 차단)를 결정해 주는 내용입니다. (보안적인 이유로 거부를 해야겠죠.)
이제 설정을 다했으니 ssh를 프로그램적으로 재시작을 하도록 하겠습니다.
systemctl restart ssh
ssh를 재시작합니다.
systemctl status ssh
ssh의 현재 상태를 확인합니다.
ssh 접속하기
시작하기 앞에서 ssh를 접속하기 위해 2가지 조건이 있습니다. 위에서 설명드렸듯이 동일한 네트워크여야 가능합니다. 두 번째로는 ssh를 설치하셔야 합니다.
ssh를 접속할 가상환경의 ip주소와 제 컴퓨터의 ip주소를 알아야 합니다.
hostname -I
명령어를 사용하여 가상환경의 ip주소를 확인하도록 하겠습니다.
저의 컴퓨터의 ip주소를 확인하겠습니다.
ifconfig
아래의 그림을 보시면 en0를 찾으실 수 있으실 것입니다. 거기에 inet이라는 목록이 있습니다.
그 뒤에 10.12.3.7이라고 적혀 있지요.
이것이 ip주소입니다.
이제 virtualbox에서 설정해야 할 부분이 있습니다.
아래의 그림을 보고 잘 따라와 주세요.
Settings 클릭
Settings에서 Network선택하기
Advanced에서 PortForwarding선택
'초록색 +버튼'을 눌러서 PortFowarding을 하나 만듭니다. HostIP에는 제 컴퓨터의 ip주소를 GuestIP에는 가상환경의 ip주소를 입력해 주세요. port 같은 경우에는 sshd_config에서 설정한 포트인 4242로 설정해 주세요.
root에서 특정 유저로 접근을 하도록 하겠습니다.
ssh 유저 이름@10.0.2.15 -p 4242
이번에는 저의 컴퓨터에서 특정 유저로 접근해 보도록 하겠습니다.
ssh 유저이름@10.12.3.7 -p 4242
원격 접속을 종료하시려면 exit명령을 사용하시면 됩니다.
저의 컴퓨터에서 exit
가상환에서 exit
'System > Linux' 카테고리의 다른 글
uname 명령어 (0) | 2023.12.23 |
---|---|
linux 암호 정책 설정하기 (0) | 2023.12.22 |
user와 group만들기 (0) | 2023.12.20 |
ufw 설치하기 (0) | 2023.12.19 |
sudo설정하기 (2) | 2023.12.18 |