Windows에서 Linux로 파일을 보내거나, Linux 서버나 클라우드상의 가상 서버, VPS에 Remote로 접속하고 싶을 때, 보통, SSH프로토콜을 이용하여 해결하는 것이 편리합니다. 이 SSH프로토콜을 이용하려면, Linux OS에 SSH-server를 설치해 줄 필요가 있습니다.
SSH프로토콜은, 암호화 통신을 이용하여 데이터의 교환을 보호하기 때문에, 보안이 중시되는 분야에서 널리 이용되고 있습니다.
하지만, 갓 설치한 Ubuntu OS에서는 SSH를 통한 연결이 잘 되어지지 않는 경우가 종종 있습니다.
이유는 UbuntuOS에 SSH-server가 인스톨 되어있지 않기 때문인데, Windows OS에서 갓 설치한 Ubuntu OS로 SSH를 사용할 경우, Error가 "Connection Refused"로 뜨다보니 다들 포트포워딩이나 방화벽문제로 혼동하는 경우가 많습니다.
물론, 진짜 포트포워딩이나 방화벽 문제일 수도 있지만, 새로 설치한 Ubuntu거나, SSH-server를 설치한 기억이 없다면, 우선은 아래와 같이 SSH-server를 설치 해보시는 것을 추천드립니다.
Ubuntu에 기본적으로 사용 가능한 소프트웨어 repository를 사용하여 SSH 서버 소프트웨어를 설치합니다.
sudo apt-get install openssh-server
하지만, Ubuntu에서 아래와 같은 메세지가 뜨면서 설치 할 수 없다고 나온다면...
E: Package 'openssh-server' has no installation candidate
단순히 "Package list"가 갱신되어있지 않아서 (최신 버전이 아니라서) 인스톨에 실패했을 가능성이 심히 높습니다.
그러므로 우선은,
sudo apt-get update
sudo apt-get install openssh-server
로 먼저 패키지 리스트를 update 해주고, 그 뒤에 다시 한 번, openssh-server를 인스톨 해보시는 것을 추천드립니다.
그러면, 거짓말처럼 openssh-server가 인스톨되는 것을 확인할 수 있을지도 모릅니다.
openssh-server 인스톨이 완료되었다면, 이미 작동하고 있는 상태이기 때문에, 우선 정상적으로 데몬이 작동하는지 확인하기 위해 아래 커맨드를 입력해주세요.
netstat -ntl
정상적으로 설치가 완료됐을 경우, 22번 포트가 열려있다는 것을 확인 할 수 있습니다.
#작동 상태 확인
sudo systemctl status ssh
Activate: active (running) 이라고 나오네요.
#openssh-server의 버전 확인
ssh -V
그러면, 이제부터는 SSH프로토콜을 사용하여 Remote로 Linux에 접속하는 것도, SCP를 사용하여 Windows에서 Linux로 파일을 전송하는 것도 할 수 있게 되었다고 볼 수 있습니다.
물론, SSH-server를 설치한 직후는, Security가 약한 상태이기도 하기 때문에, SSH의 config를 변경하여 포트를 변경(디폴트 22) 하거나, 패스워드를 강화하는 방법들이 있기는 하지만, 그건 다음 기회에 설명할 수 있도록 하겠습니다.
SSH프로토콜을 이용하려면 SSH-server의 인스톨이 필요하다. (당연한 말...)