Solaris8 SSH 설치

Posted 2009. 2. 17. 11:38


현재 제가 설치하는 것을 토대로 해서 적겠습니다. (2008.11.27)

환경 : Solaris8 SPARC
          bash 쉘


1. SSH 설치에 필요한 Package 다운로드

http://sunfreeware.com  에서 접속하여 오른쪽에 있는 Solaris8 x86, Solaris8 SPARC 중 해당 시스템 사항에 맞추어서 클릭하여  아래에 적힌 목록들을 다운

gcc-3.4.6-sol8-sparc-local.gz
libgcc-3.4.6-sol8-sparc-local.gz
openssh-5.1p1-sol8-sparc-local.gz
openssl-0.9.8i-sol8-sparc-local.gz
prngd-0.9.25-sol8-sparc-local.gz
tcp_wrappers-7.6-sol8-sparc-local.gz
zlib-1.2.3-sol8-sparc-local.gz

위에 리스트중에 이미 설치되어있는것은 생략하셔도 됩니다.
혹시 이 버젼보다 상위 버젼이 나왔다면 그것을 받아서 설치하셔도 됩니다.



2. Package 압축 해제 및 설치

위의 파일들은 모두 패키지 형식이기 때문에 gzip으로 압축만 풀고 간단한 명령어가 치면 자동으로

설치 됩니다.

예) bash-2.03#  gzip -d openssh-5.1p1-sol8-sparc-local.gz   

아~ 위에서 bash-2.03#  이부분은 제가 bash 쉘 환경으로 작업하는거니 착오 없으시길 바랍니다.

이렇게 모두 압축을 풀어주세요

압축을 풀게 되면 openssh-5.1p1-sol8-sparc-local 이렇게만 남습니다.


그다음 패키지를 풀면됩니다.


예) bash-2.03# pkgadd -d openssh-5.1p1-sol8-sparc-local

The following packages are available:
  1  SMCosh511     openssh
                   (sparc) 5.1p1

Select package(s) you wish to process (or 'all' to process
all packages). (default: all) [?,??,q]: all

Processing package instance <SMCosh511> from </down/ssh/openssh-5.1p1-sol8-sparc-local>

openssh
(sparc) 5.1p1
The OpenSSH Group
Using </usr/local> as the package base directory.
## Processing package information.
## Processing system information.
   4 package pathnames are already properly installed.
## Verifying disk space requirements.
## Checking for conflicts with packages already installed.
## Checking for setuid/setgid programs.

Installing openssh as <SMCosh511>

## Installing part 1 of 1.
/usr/local/bin/scp
/usr/local/bin/sftp
/usr/local/bin/slogin <symbolic link>
/usr/local/bin/ssh
/usr/local/bin/ssh-add
/usr/local/bin/ssh-agent
/usr/local/bin/ssh-keygen
/usr/local/bin/ssh-keyscan
/usr/local/doc/openssh/CREDITS
/usr/local/doc/openssh/ChangeLog
/usr/local/doc/openssh/INSTALL
/usr/local/doc/openssh/LICENCE
/usr/local/doc/openssh/OVERVIEW
/usr/local/doc/openssh/README
/usr/local/doc/openssh/README.dns
/usr/local/doc/openssh/README.platform
/usr/local/doc/openssh/README.privsep
/usr/local/doc/openssh/README.smartcard
/usr/local/doc/openssh/README.tun
/usr/local/doc/openssh/TODO
/usr/local/doc/openssh/WARNING.RNG
/usr/local/doc/openssh/contrib/Makefile
/usr/local/doc/openssh/contrib/README
/usr/local/doc/openssh/contrib/aix/README
/usr/local/doc/openssh/contrib/aix/buildbff.sh
/usr/local/doc/openssh/contrib/aix/inventory.sh
/usr/local/doc/openssh/contrib/aix/pam.conf
/usr/local/doc/openssh/contrib/caldera/openssh.spec
/usr/local/doc/openssh/contrib/caldera/ssh-host-keygen
/usr/local/doc/openssh/contrib/caldera/sshd.init
/usr/local/doc/openssh/contrib/caldera/sshd.pam
/usr/local/doc/openssh/contrib/cygwin/Makefile
/usr/local/doc/openssh/contrib/cygwin/README
/usr/local/doc/openssh/contrib/cygwin/ssh-host-config
/usr/local/doc/openssh/contrib/cygwin/ssh-user-config
/usr/local/doc/openssh/contrib/cygwin/sshd-inetd
/usr/local/doc/openssh/contrib/findssl.sh
/usr/local/doc/openssh/contrib/gnome-ssh-askpass1.c
/usr/local/doc/openssh/contrib/gnome-ssh-askpass2.c
/usr/local/doc/openssh/contrib/hpux/README
/usr/local/doc/openssh/contrib/hpux/egd
/usr/local/doc/openssh/contrib/hpux/egd.rc
/usr/local/doc/openssh/contrib/hpux/sshd
/usr/local/doc/openssh/contrib/hpux/sshd.rc
/usr/local/doc/openssh/contrib/redhat/gnome-ssh-askpass.csh
/usr/local/doc/openssh/contrib/redhat/gnome-ssh-askpass.sh
/usr/local/doc/openssh/contrib/redhat/openssh.spec
/usr/local/doc/openssh/contrib/redhat/sshd.init
/usr/local/doc/openssh/contrib/redhat/sshd.init.old
/usr/local/doc/openssh/contrib/redhat/sshd.pam
/usr/local/doc/openssh/contrib/redhat/sshd.pam.old
/usr/local/doc/openssh/contrib/solaris/README
/usr/local/doc/openssh/contrib/ssh-copy-id
/usr/local/doc/openssh/contrib/ssh-copy-id.1
/usr/local/doc/openssh/contrib/sshd.pam.freebsd
/usr/local/doc/openssh/contrib/sshd.pam.generic
/usr/local/doc/openssh/contrib/suse/openssh.spec
/usr/local/doc/openssh/contrib/suse/rc.config.sshd
/usr/local/doc/openssh/contrib/suse/rc.sshd
/usr/local/doc/openssh/contrib/suse/sysconfig.ssh
/usr/local/etc/moduli
/usr/local/etc/ssh_config
/usr/local/etc/sshd_config
/usr/local/libexec/sftp-server
/usr/local/libexec/ssh-keysign
/usr/local/libexec/ssh-rand-helper
/usr/local/sbin/sshd
/usr/local/share/Ssh.bin
/usr/local/share/man/man1/scp.1
/usr/local/share/man/man1/sftp.1
/usr/local/share/man/man1/slogin.1 <symbolic link>
/usr/local/share/man/man1/ssh-add.1
/usr/local/share/man/man1/ssh-agent.1
/usr/local/share/man/man1/ssh-keygen.1
/usr/local/share/man/man1/ssh-keyscan.1
/usr/local/share/man/man1/ssh.1
/usr/local/share/man/man5/ssh_config.5
/usr/local/share/man/man5/sshd_config.5
/usr/local/share/man/man8/sftp-server.8
/usr/local/share/man/man8/ssh-keysign.8
/usr/local/share/man/man8/ssh-rand-helper.8
/usr/local/share/man/man8/sshd.8
[ verifying class <none> ]

Installation of <SMCosh511> was successful.

bash-2.03#

이렇게 위의 리스트에 적혀있는 파일들을 예)를 보시고 설치 하시면 됩니다.



3. SSH 접속 환경 구성

# mkdir /var/empty 

# chown root:sys /var/empty
소유자와 그룹을 root:sys로 변경

# chmod 755 /var/empty
empty 사용 권한은 755(rwxr-xr-x)

# groupadd sshd
그룹 sshd 만들기

# useradd -g sshd -c 'sshd privsep' -d /var/empty -s /bin/false sshd



4. Tcp_Wrapper 설정

# vi /etc/hosts.allow
sshd : All    (추가)

# vi /etc/hosts.deny
Server로 접근 못하게 할 IP 등을 넣어시면 됩니다.

위 두부분은 파일만 만들어 놓고 나중에 추가 사항들을 추가 하시는게 좋을것 같습니다. 만약 원격으로 하실 경우 직접 서버가 있는 곳까지 가야할 상황이 생길 수 있으니까요.



5. SSH 사용을 위한 암호키 생성

먼저 PATH에 /usr/local/bin 과 /usr/local/sbin 이 등록되어 있어야 명령어를 실행하실 수 있습니다.

# ssh-keygen -t rsa1 -f /usr/local/etc/ssh_host_key -N ""
# ssh-keygen -t dsa -f /usr/local/etc/ssh_host_dsa_key -N ""
# ssh-keygen -t rsa -f /usr/local/etc/ssh_host_rsa_key -N ""

이렇게 하시면

예) # ssh-keygen -t rsa1 -f /usr/local/etc/ssh_host_key -N ""

Generating public/private rsa1 key pair.
Your identification has been saved in /usr/local/etc/ssh_host_key.
Your public key has been saved in /usr/local/etc/ssh_host_key.pub.
The key fingerprint is:
4f:00:d4:cc:c8:b2:7e:41:6e:3d:5d:c5:d0:52:17:cc root@unknown
The key's randomart image is:
+--[RSA1 2048]----+
|       oo=        .*=.o|
|        . +.+     o oE |
|               = ... . .  |
|            . + o.. .    |
|      .  .  .S..  ..     |
|    .    .  o          . |
|     .    .               |
|                          |
|                          |
+-----------------+
bash-2.03#

이런 형식의 내용을 화면에 뿌려줍니다.  만들어진 파일은 /usr/local/etc/ 안에 있습니다.



6. sshd Daemon Script 작성

# vi /etc/init.d/sshd

#!/bin/sh

pid=`/usr/bin/ps -e | /usr/bin/grep sshd | /usr/bin/sed -e 's/^  *//' -e 's/ .*//'`
case $1 in
'start')
/usr/local/sbin/sshd
;;
'stop')
if [ "${pid}" != "" ]
then
/usr/bin/kill ${pid}
fi
;;
*)
echo "usage: /etc/init.d/sshd {start|stop}"
;;
esac


혹은

case "$1" in

'start')
     # Start the ssh daemon
     if [ -f /usr/local/sbin/sshd ]; then
          echo "starting SSHD daemon"
          /usr/local/sbin/sshd &
     fi
     ;;

'stop')
     # Stop the ssh deamon
     PID=`/usr/bin/ps -e -u 0 | /usr/bin/fgrep sshd | /usr/bin/awk '{print $1}'`
     if [ ! -z "$PID" ] ; then
          /usr/bin/kill ${PID} >/dev/null 2>&1
     fi
     ;;

*)
     echo "usage: /etc/init.d/sshd {start|stop}"
     ;;

esac
exit 0

둘중에 하나를 작성하시면 됩니다.

# chown root:sys /etc/init.d/sshd
sshd 파일의 소유자 및 그룹을  root:sys 로 변경

# chmod 555 /etc/init.d/sshd
sshd 파일의 권한을 555 (r-xr-xr-x)

# cat >> /etc/rc2.d/S99sshd
/etc/init.d/sshd start
Ctrl + C <- 이거 아시죠? 빠져나오기.. ^^

# chome 744 /etc/rc2.d/S99sshd
sshd 파일의 권한을 744 (rwxr--r--)

이렇게 하시면 Server Reboot 데몬이 자동 실행되어 가동이 됩니다.



7. SSH 실행 및 가동여부 확인

# /etc/rc2.d/S99sshd
starting SSHD daemon

# ps -ef | grep sshd
    root   478     1  0 16:16:27 ?        0:02 /usr/local/sbin/sshd

이렇게 띄워져 있다면 실행되고 있습니다.

해 보시고 문제가 있다면 댓글을 남겨주세요~!