리눅스를 접하게 되는 여러가지 이유들 중에, "교육용" 이슈가 많을 것이라 생각됩니다.
컴퓨터/소프트웨어 관련 학과를 다니거나, IT 관련 수업을 듣는 분들,
그리고 서버를 구축하여 학습을 해야하는 환경에서 리눅스를 활용한 교육이 많이 이루어지고 있습니다.
하모니카가 Desktop 운영체제에 맞춰져 있지만,
간단히 개인 Server를 구축하여 교육용으로 사용함에도 전혀 무리가 없습니다.
그래서 교육용으로 리눅스를 사용할때 도움이 될 수 있도록 간단한 서버 구축 가이드를 연재할까 합니다.
그 첫번째 순서로 "ssh 서버 구축"을 올려봅니다.
■ SSH 개요
커맨드라인(Command-line) 방식으로 리눅스 서버에 원격 접속하여 시스템을 제어/관리하기 위해 SSH 서비스를 많이 이용합니다.
이때 접속하고자하는 대상(서버)에는 ssh-server 데몬이 설치되어 있어야 하고, 접속하기 위한 단말 PC(클라이언트)에는 ssh-client가 설치되어 있어야 합니다.
하모니카는 Desktop 환경을 추구하는 OS이기에 ssh-client는 기본 설치되어 있으나, ssh-server는 설치되어 있지 않은데요.
터미널에서 아래의 명령으로 간단히 ssh-server를 설치할 수 있습니다.
■ SSH 서버 설치
먼저 현재 시스템에 ssh가 설치되어 있는지 확인하려면 아래와 같이 dpkg 명령을 사용합니다.
$ dpkg -l *ssh*
||/ 이름 버전 Architecture 설명
+++-==============-============-============-=================================
un libpam-ssh <none> <none> (설명 없음)
ii libssh2-1:amd6 1.4.3-2 amd64 SSH2 client-side library
ii openssh-client 1:6.6p1-2ubu amd64 secure shell (SSH) client, for se
un openssh-server <none> <none> (설명 없음)
un ssh <none> <none> (설명 없음)
un ssh-askpass <none> <none> (설명 없음)
ii ssh-askpass-gn 1:6.6p1-2ubu amd64 interactive X program to prompt u
un ssh-client <none> <none> (설명 없음)
un ssh-krb5 <none> <none> (설명 없음)
+++-==============-============-============-=================================
여기서... openssh-client는 설치되어 있으나, openssh-server는 설치되어 있지 않음을 확인할 수 있습니다.
그럼 apt-get 명령으로 openssh-server를 설치하도록 합니다.
$ sudo apt-get install openssh-server
==============================================================================
[sudo] password for user:
패키지 목록을 읽는 중입니다... 완료
의존성 트리를 만드는 중입니다
상태 정보를 읽는 중입니다... 완료
다음 패키지를 더 설치할 것입니다:
openssh-client openssh-sftp-server
제안하는 패키지:
libpam-ssh keychain monkeysphere rssh molly-guard
추천하는 패키지:
ncurses-term ssh-import-id
다음 새 패키지를 설치할 것입니다:
openssh-server openssh-sftp-server
다음 패키지를 업그레이드할 것입니다:
openssh-client
1개 업그레이드, 2개 새로 설치, 0개 제거 및 278개 업그레이드 안 함.
917 k바이트 아카이브를 받아야 합니다.
이 작업 후 1,080 k바이트의 디스크 공간을 더 사용하게 됩니다.
계속 하시겠습니까? [Y/n] y
받기:1 http://ftp.daum.net/ubuntu/ trusty-updates/main openssh-client amd64 1:6.6p1-2ubuntu2.6 [562 kB]
받기:2 http://ftp.daum.net/ubuntu/ trusty-updates/main openssh-sftp-server amd64 1:6.6p1-2ubuntu2.6 [34.2 kB]
받기:3 http://ftp.daum.net/ubuntu/ trusty-updates/main openssh-server amd64 1:6.6p1-2ubuntu2.6 [321 kB]
내려받기 917 k바이트, 소요시간 0초 (2,230 k바이트/초)
패키지를 미리 설정하는 중입니다...
(데이터베이스 읽는중 ...현재 275026개의 파일과 디렉터리가 설치되어 있습니다.)
Preparing to unpack .../openssh-client_1%3a6.6p1-2ubuntu2.6_amd64.deb ...
Unpacking openssh-client (1:6.6p1-2ubuntu2.6) over (1:6.6p1-2ubuntu2.3) ...
Selecting previously unselected package openssh-sftp-server.
Preparing to unpack .../openssh-sftp-server_1%3a6.6p1-2ubuntu2.6_amd64.deb ...
Unpacking openssh-sftp-server (1:6.6p1-2ubuntu2.6) ...
Selecting previously unselected package openssh-server.
Preparing to unpack .../openssh-server_1%3a6.6p1-2ubuntu2.6_amd64.deb ...
Unpacking openssh-server (1:6.6p1-2ubuntu2.6) ...
Processing triggers for man-db (2.6.7.1-1ubuntu1) ...
Processing triggers for ureadahead (0.100.0-16) ...
ureadahead will be reprofiled on next reboot
Processing triggers for ufw (0.34~rc-0ubuntu2) ...
openssh-client (1:6.6p1-2ubuntu2.6) 설정하는 중입니다 ...
openssh-sftp-server (1:6.6p1-2ubuntu2.6) 설정하는 중입니다 ...
openssh-server (1:6.6p1-2ubuntu2.6) 설정하는 중입니다 ...
Creating SSH2 RSA key; this may take some time ...
Creating SSH2 DSA key; this may take some time ...
Creating SSH2 ECDSA key; this may take some time ...
Creating SSH2 ED25519 key; this may take some time ...
ssh start/running, process 3613
Processing triggers for ureadahead (0.100.0-16) ...
Processing triggers for ufw (0.34~rc-0ubuntu2) ...
==============================================================================
위에서 보는바와 같이 2개의 패키지가 설치되고, 1개의 패키지가 업데이트 되었습니다.
+ [설치] openssh-server
+ [설치] openssh-sftp-server
+ [업데이트] openssh-client
※ 참고로... 하모니카 2.1 설치이미지에는 확장팩 형태로 ssh 패키지가 별도 포함되어 있습니다.
외부 네트워크 접속이 여의치 않은 환경이라면, 설치미디어의 아래 경로에서 찾아서 직접 설치할 수 있습니다.
+ 경로 : /pool/expansion-pack/
+ 설치명령 : $ sudo dpkg -i openssh-*.deb
■ SSH 서버 데몬 구동
ssh 서버를 설치하였으니, 이제 서비스 데몬을 구동합니다.
$ sudo service ssh restart
■ SSH 접속 확인
ssh 서버 설치 및 데몬 구동이 완료되었으면, 클라이언트 PC에서 아래와 같은 명령으로 ssh 접속을 확인해 봅니다.
+ 문법 : $ ssh id@ip-address
+ 예제 : $ ssh user@192.168.0.100
########################
# [참고] SSH 서비스 자동시작 등록 #
########################
service 명령으로 ssh 서버를 구동할 수 있지만, 시스템 부팅 시 매번 수동으로 구동하는 것은 매우 번거롭기에 자동시작 서비스로 등록하는 것이 좋습니다. 예전에는 chkconfig 명령으로 자동시작 서비스를 관리했으나, 최근에는 sysv-rc-conf 명령을 사용하여 관리하는 것으로 바뀌는 추세입니다.
아래 명령으로 sysv-rc-conf를 설치합니다.
$ sudo apt-get install sysv-rc-conf
현재 시스템에 설치된 서비스들의 구동 여부를 확인하려면 아래와 같이 명령을 줍니다.
$ sudo sysv-rc-conf --list
==============================================================================
--- 생략 ---
saned 1:off 2:on 3:on 4:on 5:on
sendsigs 0:on 6:on
single 1:on
smbd
speech-dispa 0:off 1:off 2:on 3:on 4:on 5:on 6:off
ssh
sudo
udev
umountfs 0:on 6:on
umountroot 0:on 6:on
unattended-u 0:off 6:off
urandom 0:on 6:on S:on
virtualbox-g 0:off 1:off 2:on 3:on 4:on 5:on 6:off
virtualbox-g S:on
x11-common S:on
--- 생략 ---
==============================================================================
위와 런레벨(run-level)에 따른 서비스 구동 여부를 한눈에 확인할 수 있습니다.
※ 참고로 런레벨은... 0번부터~6번까지의 숫자로 표현되며,
종료(0), 복원모드(1), 다중사용자모드(2), 텍스트모드(3), 그래픽모드(5), 재부팅(6)으로 구분됩니다.
이 중 SSH에는 아무런 값도 지정되어 있지 않으므로, 아래의 명령으로 서비스 구동을 설정합니다.
$ sudo sysv-rc-conf ssh on
그런다음 다시 리스트 명령을 주면, ssh 런레벨에 on 표시가 되어 있음을 확인할 수 있습니다.
$ sudo sysv-rc-conf --list ssh
ssh 2:on 3:on 4:on 5:on
이제는 부팅시 매번 service 구동 명령을 넣지 않아도, ssh 서비스가 자동으로 구동됩니다.
[요약] SSH 서버 구축
① ssh 서버 설치
$ sudo apt-get install openssh-server
② ssh 서비스 구동
$ sudo service ssh restart
--------------------------------------------------------------
# 개인 서버 구축 가이드 - 전체 목록
[개인 서버 구축 가이드] ① SSH 서버 (openssh-server)
[개인 서버 구축 가이드] ② FTP 서버 (vsftpd)
[개인 서버 구축 가이드] ③ 파일 공유 서버 (samba-초급)
[개인 서버 구축 가이드] ④ 파일 공유 서버 (samba-중급)
[개인 서버 구축 가이드] ⑤ 파일 공유 서버 (samba-고급)
[개인 서버 구축 가이드] ⑥ 파일 공유 서버 (nfs)
[개인 서버 구축 가이드] ⑦ 파일 공유 서버 (autofs)
[개인 서버 구축 가이드] ⑧ DB 서버 (mariadb)
--------------------------------------------------------------
legoboss님. 서버 구축 가이드 연재 기대됩니다.