본문 바로가기
IT/리눅스

우분투 SSH 서버 설치 및 설정 - WinSCP로 접속 예제 - 2021.05.31

이번 글에서는 간단한 SSH 서버 설치, 설정, 기본적인 포트 변경 방법을 알아보고, 윈도우 환경에서 WinSCP로 접속을 시도해 보자.

 

우분투를 기본으로 설치하고, ssh, sftp 접속을 하면 아래와 같은 에러가 발생!! 먼가 설치를 해야 한다.

SSH SFTP 연결거부

SSH 설치

이것도 로그로 보여준다. 명령어를 어떤 것을 줬는지, 어떤 로그들이 뜨는지 다 확인할 수 있다.

sudo apt-get install openssh-server
sudo systemctl start ssh
sudo systemctl enable ssh
netstat -tnlp

중간에 netstat 패키지가 없어서 net-tools 패키지를 설치하는 과정도 포함되어 있다.

twmini@twmini-ThinkCentre-M600:~$ sudo apt-get install openssh-server
[sudo] twmini의 암호: 
패키지 목록을 읽는 중입니다... 완료
의존성 트리를 만드는 중입니다       
상태 정보를 읽는 중입니다... 완료
다음의 추가 패키지가 설치될 것입니다 :
  ncurses-term openssh-client openssh-sftp-server ssh-import-id
제안하는 패키지:
  keychain libpam-ssh monkeysphere ssh-askpass molly-guard rssh
다음 새 패키지를 설치할 것입니다:
  ncurses-term openssh-server openssh-sftp-server ssh-import-id
다음 패키지를 업그레이드할 것입니다:
  openssh-client
1개 업그레이드, 4개 새로 설치, 0개 제거 및 550개 업그레이드 안 함.
637 k바이트/1,251 k바이트 아카이브를 받아야 합니다.
이 작업 후 5,316 k바이트의 디스크 공간을 더 사용하게 됩니다.
계속 하시겠습니까? [Y/n] 
받기:1 http://kr.archive.ubuntu.com/ubuntu bionic-updates/main amd64 ncurses-term all 6.1-1ubuntu1.18.04 [248 kB]
받기:2 http://kr.archive.ubuntu.com/ubuntu bionic-updates/main amd64 openssh-sftp-server amd64 1:7.6p1-4ubuntu0.3 [45.6 kB]
받기:3 http://kr.archive.ubuntu.com/ubuntu bionic-updates/main amd64 openssh-server amd64 1:7.6p1-4ubuntu0.3 [333 kB]
받기:4 http://kr.archive.ubuntu.com/ubuntu bionic-updates/main amd64 ssh-import-id all 5.7-0ubuntu1.1 [10.9 kB]
내려받기 637 k바이트, 소요시간 3초 (242 k바이트/초)
패키지를 미리 설정하는 중입니다...
(데이터베이스 읽는중 ...현재 155286개의 파일과 디렉터리가 설치되어 있습니다.)
Preparing to unpack .../openssh-client_1%3a7.6p1-4ubuntu0.3_amd64.deb ...
Unpacking openssh-client (1:7.6p1-4ubuntu0.3) over (1:7.6p1-4ubuntu0.2) ...
Selecting previously unselected package ncurses-term.
Preparing to unpack .../ncurses-term_6.1-1ubuntu1.18.04_all.deb ...
Unpacking ncurses-term (6.1-1ubuntu1.18.04) ...
Selecting previously unselected package openssh-sftp-server.
Preparing to unpack .../openssh-sftp-server_1%3a7.6p1-4ubuntu0.3_amd64.deb ...
Unpacking openssh-sftp-server (1:7.6p1-4ubuntu0.3) ...
Selecting previously unselected package openssh-server.
Preparing to unpack .../openssh-server_1%3a7.6p1-4ubuntu0.3_amd64.deb ...
Unpacking openssh-server (1:7.6p1-4ubuntu0.3) ...
Selecting previously unselected package ssh-import-id.
Preparing to unpack .../ssh-import-id_5.7-0ubuntu1.1_all.deb ...
Unpacking ssh-import-id (5.7-0ubuntu1.1) ...
ncurses-term (6.1-1ubuntu1.18.04) 설정하는 중입니다 ...
Processing triggers for ufw (0.35-5) ...
Processing triggers for ureadahead (0.100.0-20) ...
Processing triggers for systemd (237-3ubuntu10.12) ...
Processing triggers for man-db (2.8.3-2ubuntu0.1) ...
openssh-client (1:7.6p1-4ubuntu0.3) 설정하는 중입니다 ...
ssh-import-id (5.7-0ubuntu1.1) 설정하는 중입니다 ...
openssh-sftp-server (1:7.6p1-4ubuntu0.3) 설정하는 중입니다 ...
openssh-server (1:7.6p1-4ubuntu0.3) 설정하는 중입니다 ...

Creating config file /etc/ssh/sshd_config with new version
Creating SSH2 RSA key; this may take some time ...
2048 SHA256:xevM4VTBJfjHB3AeO6XTvAf8mTM4qrgeS+TKBEDwVwo root@twmini-ThinkCentre-M600 (RSA)
Creating SSH2 ECDSA key; this may take some time ...
256 SHA256:8C7S5A1QAEPw5WHqlqLwipYUCI99j4ISEuANPwiNLJQ root@twmini-ThinkCentre-M600 (ECDSA)
Creating SSH2 ED25519 key; this may take some time ...
256 SHA256:rS+Gi5Khb5CpwQOSc/DhcOShNwl0e6NknDUipPuyFqo root@twmini-ThinkCentre-M600 (ED25519)
Created symlink /etc/systemd/system/sshd.service → /lib/systemd/system/ssh.service.
Created symlink /etc/systemd/system/multi-user.target.wants/ssh.service → /lib/systemd/system/ssh.service.
Processing triggers for ureadahead (0.100.0-20) ...
Processing triggers for systemd (237-3ubuntu10.12) ...
Processing triggers for ufw (0.35-5) ...
twmini@twmini-ThinkCentre-M600:~$ sudo service ssh start
twmini@twmini-ThinkCentre-M600:~$ netstat -tnlp

Command 'netstat' not found, but can be installed with:

sudo apt install net-tools

twmini@twmini-ThinkCentre-M600:~$ sudo apt install net-tools
패키지 목록을 읽는 중입니다... 완료
의존성 트리를 만드는 중입니다       
상태 정보를 읽는 중입니다... 완료
다음 새 패키지를 설치할 것입니다:
  net-tools
0개 업그레이드, 1개 새로 설치, 0개 제거 및 550개 업그레이드 안 함.
194 k바이트 아카이브를 받아야 합니다.
이 작업 후 803 k바이트의 디스크 공간을 더 사용하게 됩니다.
받기:1 http://kr.archive.ubuntu.com/ubuntu bionic/main amd64 net-tools amd64 1.60+git20161116.90da8a0-1ubuntu1 [194 kB]
내려받기 194 k바이트, 소요시간 2초 (123 k바이트/초)                  
Selecting previously unselected package net-tools.
(데이터베이스 읽는중 ...현재 158098개의 파일과 디렉터리가 설치되어 있습니다.)
Preparing to unpack .../net-tools_1.60+git20161116.90da8a0-1ubuntu1_amd64.deb ...
Unpacking net-tools (1.60+git20161116.90da8a0-1ubuntu1) ...
Processing triggers for man-db (2.8.3-2ubuntu0.1) ...
net-tools (1.60+git20161116.90da8a0-1ubuntu1) 설정하는 중입니다 ...
twmini@twmini-ThinkCentre-M600:~$ netstat -tnlp
(Not all processes could be identified, non-owned process info
 will not be shown, you would have to be root to see it all.)
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:27017           0.0.0.0:*               LISTEN      -                   
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      -                   
tcp        0      0 127.0.0.53:53           0.0.0.0:*               LISTEN      -                   
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      -                   
tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN      -                   
tcp6       0      0 :::80                   :::*                    LISTEN      -                   
tcp6       0      0 :::22                   :::*                    LISTEN      -                   
tcp6       0      0 ::1:631                 :::*                    LISTEN      -                   
twmini@twmini-ThinkCentre-M600:~$ sudo systemctl enable ssh
Synchronizing state of ssh.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install enable ssh
twmini@twmini-ThinkCentre-M600:~$ sudo systemctl restart ssh
twmini@twmini-ThinkCentre-M600:~$ sudo systemctl status ssh
● ssh.service - OpenBSD Secure Shell server
   Loaded: loaded (/lib/systemd/system/ssh.service; enabled; vendor preset: enabled)
   Active: active (running) since Fri 2021-05-28 13:32:48 KST; 9s ago
  Process: 15062 ExecStartPre=/usr/sbin/sshd -t (code=exited, status=0/SUCCESS)
 Main PID: 15063 (sshd)
    Tasks: 1 (limit: 4548)
   CGroup: /system.slice/ssh.service
           └─15063 /usr/sbin/sshd -D

 5월 28 13:32:48 twmini-ThinkCentre-M600 systemd[1]: Starting OpenBSD Secure Shell server...
 5월 28 13:32:48 twmini-ThinkCentre-M600 sshd[15063]: Server listening on 0.0.0.0 port 22.
 5월 28 13:32:48 twmini-ThinkCentre-M600 sshd[15063]: Server listening on :: port 22.
 5월 28 13:32:48 twmini-ThinkCentre-M600 systemd[1]: Started OpenBSD Secure Shell server.
twmini@twmini-ThinkCentre-M600:~$ 

SSH 서비스 등록

항상 실행 시키기 위해 서비스를 등록해야 한다. 위의 로그에 다 있다.

sudo systemctl enable ssh
sudo systemctl start ssh
sudo systemctl restart ssh
sudo systemctl status ssh

sudo systemctl stop ssh
sudo systemctl disable ssh

twmini@twmini-ThinkCentre-M600:~$ sudo systemctl enable ssh
Synchronizing state of ssh.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install enable ssh
twmini@twmini-ThinkCentre-M600:~$ sudo systemctl restart ssh
twmini@twmini-ThinkCentre-M600:~$ sudo systemctl status ssh

네트워크 서비스 실행 확인

확인은 아래 명령어 실행으로 알아 볼 수 있다. 22번 포트가 listen 되어 있는지 확인한다.

netstat -tnlp

twmini@twmini-ThinkCentre-M600:~$ netstat -tnlp
(Not all processes could be identified, non-owned process info
 will not be shown, you would have to be root to see it all.)
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:27017           0.0.0.0:*               LISTEN      -                   
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      -                   
tcp        0      0 127.0.0.53:53           0.0.0.0:*               LISTEN      -                   
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      -                   
tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN      -                   
tcp6       0      0 :::80                   :::*                    LISTEN      -                   
tcp6       0      0 :::22                   :::*                    LISTEN      -                   
tcp6       0      0 ::1:631                 :::*                    LISTEN      -                   

 

SSH 접속 시도 - WinSCP 윈도우 툴로 접속

제대로 설치 되었는지 접속을 시도해 보자. 윈도우에서 쓸 수 있는 WinSCP로 접속을 시도해 보았다.

2017.11.21 - [IT/Software] - WinSCP | 무료 FTP/SFTP client 프로그램
 

WinSCP | 무료 FTP/SFTP client 프로그램

최강의 FTP client 툴이다..물론 무료. 깔끔한 인터페이스. 마우스 클릭으로 모든 것을 다 할 수 있다. FTP SFTP 여기로 방문해서 다운로드 설치 http://winscp.net #FTP Client 프로그램 막 뒤지다가 이게 최고

wiznxt.tistory.com

설치가 되면 세션을 새로 열어보자. 아래 그림을 참고하세요

SFTP 연결

처음 접속하는 거라 머 인증서, 인증키 같은거를 처리하라고 창이 뜬다. 그냥 업데이트 눌렀다.

SSH 키 등록

접속 성공!!

WinSCP SFTP 접속 성공!

22번 포트 변경 - 딱 기본 보안을 위해

22번 포트가 기본으로 바인딩 되어 있는데, 이 포트를 변경해 보자.

딱 기본적인 보안의 시작으로 볼 수 있다.

sudo vi /etc/ssh/sshd_config

twmini@twmini-ThinkCentre-M600:~$ sudo vi /etc/ssh/sshd_config

# sshd_config 파일 내용중에 아래 부분만 수정

#Port 22
Port 2200

이젠 2200 포트로 접속이 가능하다. 22번 포트 접속은 에러가 발생한다.

 

앗! 이전에 글도 있네 

2021.01.19 - [IT/리눅스] - 우분투 리눅스 SSH 서버 설정하기

2021.01.22 - [IT/리눅스] - 우분투 리눅스 SSH 접속하기 - 윈도우 환경에서 SSH Key 방식 접속

BJ.

 

  • 안녕하세요. 파이채굴러입니다.
    요기조기 구경다니다가 들어왔는데,
    포스팅 진짜 잘하시는거 같아요.😉😉
    저도 배워갑니다.
    시간되실때 제 블로그도 한번
    들려주세요.🤗🤗🤗🤗