Link : http://www.linux.co.kr/home/lecture/index.php?cateNo=1&secNo=27&theNo=&leccode=147



SSH설치

ssh는 Secure Shell의 약자로 쉽게 생각하면 전송되는 패킷을 암호화시켜
네트웍상에 떠돌아 다니는 패킷을 어떤 놈이 스니퍼하더라도 그 내용이 무엇인지
파악하기 곤란(?)하게 한다.

실제 TCP/IP의 자체결함(?)으로 인해 네트웍상의 패킷을 잡아서 보는 것은
그리 어려운 일이 아니다. 그냥 스니퍼툴을 사용하면 됩니다.

SSH는 OpenSSH(www.openssh.com)를 사용했다.
그냥 ssh(www.ssh.org)도 있으나, 왠일인지 다운로드링크가 막혀있었다.
한마디로 사이트가 썰렁해서.. 이에 비해 OpenSSH는 뭔가 진행된다는 분위기가...

OpenSSH는 설치시 OpenSSL(www.openssl.org)이나 SSLeay를 필요로 한다.
여기서는 OpenSSL을 사용하겠다. SSL(Secure Socket Layer)은 암호화관련라이브러리라고 생각하면 되겠다.
 나중에(?) https://으로 시작하는 보안걸린 웹페이지를 만들때도 사용된다.


OpenSSL설치
OpenSSH를 설치전 먼저 OpenSSL을 설치해야 한다.
전형적인 유닉스 설치방법인 configure, make, make install만 해주면 끝이다.

일단 www.openssl.org사이트에서 다운로드 받아온다.
이 글 작성시 최신버전은 openssl-0.9.6.tgz였다.

% tar xvzf openssl-0.9.6.tgz -C /usr/local/src
% cd /usr/local/src/openssl-0.9.6
% ./config (./configure에 비해 이 놈은 OS환경을 자동판별합니다)
% make
% make test
% make install

위의 과정을 거치면 몇몇 놈은 /usr하위의 어디어디로 들어가고, 몇몇놈은  /usr/local/ssl디렉토리로 간다
(자세한건 본인도 모른다. 아무 생각없이 설치했다)


OpenSSH설치
이 놈도 크게 어려울 것이 없다.
그냥 일사천리 configure, make, make install로 끝난다.

% tar xvzf openssh-2.3.0p1.tgz -C /usr/local/src
% cd /usr/local/src/openssh-2.3.0p1
% ./configure --prefix=/usr/local/openssh (나중에 uninstall하기 쉽게 디렉토리를 지정하자)
% make
% make install

위의 과정을 거치면 /usr/local/openssh에 모든 파일이 들어간다.


OpenSSH실행
일단 ssh를 사용하려면 서버와 클라이언트가 있는 것은 당연하다.
자신의 컴퓨터가 서버로 사용될 것이라면 /usr/local/openssh/sbin에 있는
sshd를 실행시킨다. 데몬이므로 그냥 sshd만 입력하고 엔터키를 치면 알아서 백그라운드로 돌아간다.

% cd /usr/local/openssh/sbin
% sshd

이제 서버가 실행중이다.
클라이언트로 이 놈의 서버에 접속해보자.
접속은 공개키방식으로도 가능하나, 본인은 패스워드방식으로 접속했다.
사실 공개키방식으로 하는 법은 번잡스러워서... 흠..

중요한 사실은 리눅스의 경우 대부분 PAM방식으로 사용자 인증을 받는다는 것이다.
따라서 그냥 ssh로 연결하면 십중팔구 인증실패가 발생한다.

서버로 접속하기 전에, ssh에서 pam인증을 사용하기 위해 아래와 같이 해준다.

cp /usr/local/src/openssh-2.3.0p1/contrib/sshd.pam.generic /etc/pam.d/sshd

이제 인증방식도 제대로 설정이 되었다.
다음과 같이 하여 접속테스트 해본다.

[kang@maddog kang]$ ssh localhost
kang@localhost's password: 
Last login: Sat Jan 27 13:43:03 2001 from localhost
[kang@maddog kang]$ 

위에서 묻는 패스워드는 유닉스계정에서 자신의 암호를 입력하면 된다.
흠.. 어려운 내용없다.

윈도에서 리눅스의 SSH를 이용해 접속하고 싶다면 SecureCRT를 이용하면 좋다.
설정방법은 알아서 하도록..
리눅스에서 어떤 암호방식을 사용하고.. 대충 연결이 어떤 식으로 되는가보려면
ssh에서 -v옵션(verbose)을 사용하면 SecureCRT에서 설정시 도움이 될 것이다.

다음의 본인의 SecureCRT의 설정내용이다. 
인증방식은 password방식이다.


SecureCRT메인화면
Connect 다이얼로그
옵션화면 끝 << 추가부분 2001-07-14 >>
ssh에 관련된 명령어 사용법 정리 다음은 외부로 ssh접속하는 예이다. 접속하고자 하는 호스트의 계정은 @나 -l옵션으로 지정한다. [kang@ns 일기]$ ssh kang@dev2.dbakorea.pe.kr The authenticity of host 'dev2.dbakorea.pe.kr (211.41.23.252)' can't be established. RSA key fingerprint is 17:77:be:5d:d2:c9:8d:d9:a5:70:27:bf:5c:9c:95:cc. Are you sure you want to continue connecting (yes/no)? yes [처음 ssh연결시에만 표시된다] Warning: Permanently added 'dev2.dbakorea.pe.kr' (RSA) to the list of known hosts. .ssh디렉토리의 known_hosts2파일에 dev2호스트가 등록됨 kang@dev2.dbakorea.pe.kr's password: Last login: Sat Jul 14 22:38:48 2001 from 211.222.174.13 [kang@dev2 kang]$ l [kang@ns 일기]$ ssh kang@dev2.dbakorea.pe.kr kang@dev2.dbakorea.pe.kr's password: Last login: Sat Jul 14 23:22:30 2001 from 211.41.23.236 [kang@dev2 kang]$ [kang@dev2 kang]$ exit logout Connection to dev2.dbakorea.pe.kr closed. [kang@ns 일기]$ ssh -l kang dev2.dbakorea.pe.kr @대신 -l 옵션으로 지정해도 된다. kang@dev2.dbakorea.pe.kr's password: Last login: Sat Jul 14 23:25:54 2001 from 211.41.23.236 다음은 로컬에 존재하는 파일을 외부호스트에 복사하는 예이다. [kang@ns 학습할 것]$ scp make.txt kang@dev2.dbakorea.pe.kr:test [로컬에 있는 make.txt파일을 외부호스트dev2의 test디렉토리에 복사] kang@dev2.dbakorea.pe.kr's password: 비밀번호 입력 make.txt 100% |***************************************************| 70276 00:00 다음은 외부호스트에 존재하는 sample1.pc파일을 로컬로 복사하는 예이다. [kang@ns kang]$ scp kang@dev2.dbakorea.pe.kr:test/sample1.pc . kang@dev2.dbakorea.pe.kr's password: sample1.pc 100% |***********************************************************************| 2352 00:00 사실 외부호스트와 계정이름이 동일하다면 계정을 지정하지 않고 다음과 같이 해도 된다. [kang@ns kang]$ scp dev2.dbakorea.pe.kr:test/sample1.pc . kang@dev2.dbakorea.pe.kr's password: sample1.pc 100% |***********************************************************************| 2352 00:00 [kang@ns kang]$ 하위디렉토리까지 모두 복사하고 싶으면 cp명령어와 마찬가지로 -r옵션도 사용가능하다. 다음은 ftp기능을 해주는 sftp를 사용하는 예이다. [kang@ns 학습할 것]$ sftp kang@dev2.dbakorea.pe.kr ssh명령과 유사하다. Connecting to dev2.dbakorea.pe.kr... kang@dev2.dbakorea.pe.kr's password: 비밀번호입력 sftp> put gcc1.txt Uploading gcc1.txt to /home/kang/gcc1.txt sftp> get smsgw.log Fetching /home/kang/smsgw.log to smsgw.log sftp> << 추가부분 끝 >> << 추가부분 2001-11-15 >> Secure Shell관련사이트 OpenSSH (www.openssh.org) 가장 유명한 SSH사이트 유닉스계열 OpenSSH사이트 - 원래 FreeBSD용이나, 다른 OS에 포팅하는 개념으로 제공 FreeSSH (http://www.freessh.org/) 무료로 사용가능한 SSH툴들의 정보를 제공 Networkdimplicity (http://www.networksimplicity.com/openssh/) 윈도용 OpenSSH사이트 Openssh.org의 윈도버전 사이트 [윈도 SFTP 클라이언트(ftp기능)] 1. Cuteftp Pro(www.globalscape.com) 상용 - 제일 좋다.(ftp, sftp, ..) 2. WinSCP(http://winscp.vse.cz/eng) 무료 - 모든 윈도버전에서 사용가능(XP제외..) ssh서버만 사용가능 인스톨과정없음 3. Secure iXplorer(http://i-tree.org/ixplorer.htm) 무료 - ssh서버만 사용가능 인스톨필요 [ssh클라이언트(telnet기능)] 1. SecureCRT(www.vandyke.com) 상용 - 제일 좋다. 2. PuTTY(http://www.chiark.greenend.org.uk/~sgtatham/putty/) 무료 - 무료치고는 상당히 괜찮다.(권장) telnet, ssh모두 지원 인스톨필요없음 3. Tera Term Pro(http://hp.vector.co.jp/authors/VA002416/teraterm.html) 무료 - 사용이 좀 불편(SSH지원을 위해선 Plugin을 별도 설치해야함) TTSSH(ssh plugin) - http://www.zip.com.au/~roca/ttssh.html << 추가부분 끝 >>
Posted by eoseontaek