WHEREIS

[SSH 설정 파일]

 

/etc 디렉토리를 살펴보면 두 개의 환경 설정 파일이 존재한다.

 

Ssh_config 파일은 클라이언트 유틸리티인 ssh의 설정 파일이고 sshd_config는 서버 데몬인 sshd의 설정 파일이다.

 

이외에도 많은 설정 파일이 존재해서 OpenSSH를 처음 사용하는 사람은 대단히 혼란스럽다. OpenSSH에서 사용되는 중요한 설정 파일의 목록은 다음과 같다.

 

파일 경로

설명

$HOME/.ssh/known_hosts

시스템 전역적으로 신뢰할 수 있는 호스트의 리스트

$HOME/.ssh/identity,

$HOME/.ssh/id_dsa,

$HOME/.ssh/id_rsa

사용자 인증에 대한 개인키가 저장되어 있는 파일이다순서대로SSH1 RSA, SSH2 DSA, SSH2 RSA 프로토콜을 위한 파일이다이 파일은 다른 사람이 읽을 수 있으면 개인키로서 기능을 상실한다.

개인키에는 패스프레이즈(passphrase)를 가지고 키를 보호할 수 있는데 패스프레이즈는 3DES 알고리즘을 사용해 파일의 중요한 부분을 암호화 한다.

$HOME/.ssh/identity.pub,

$HOME/.ssh/id_dsa.pub,

$HOME/.ssh/id_rsa.pub

이 파일은 개인키에 해당하는 공개키이다목적은 앞의 개인키와 동일한 목적을 가지고 있다.

$HOME/.ssh/config

/etc/ssh/ssh_config가 모든 사용자에 해당하는 설정이라면 이 파일은 각 사용자에 해당하는 설정을 적어 놓을 수 있다.

$HOME/.ssh/authorized_keys

사용자가 로그인할 때 필요한 RSA 또는 DSA 공개키의 목록이 있는 파일이다.

/etc/ssh/ssh_known_hosts

시스템 전역에 걸친 신뢰할 수 있는 컴퓨터의 리스트를 적어 놓는 파일이다한 라인에 하나의 컴퓨터가 등록된다.

/etc/ssh/ssh_config

시스템 전역에 걸친 ssh 클라이언트 도구에 대한 설정이다.

/etc/ssh/ssh_host_key,

/etc/ssh/ssh_host_dsa_key,

/etc/ssh/ssh_host_rsa_key

순서에 따라 SSH1 RSA, SSH2 DSA, SSH2 RSA 프로토콜을 위한 호스트 공개키 파일들이다.

/etc/ssh/sshrc

Ssh로 로그인을 할 때사용자의 쉘이 시작이 되기 전에 실행해야할 명령어를 적어두는 곳이다.

$HOME/.ssh/rc

Ssh로 로그인을 할 때사용자의 쉘이 시작이 되기 전에 실행해야 할 명령어를 적어두는 곳이다단 사용자마다 다른 명령을 실행시킬 때 사용한다.

$HOME/.ssh/environment

추가적인 환경변수를 설정할 수 있다.

 

 

다음은 SSH 서버 데몬에 대한 설정 파일인 /etc/ssh/sshd_config 파일의 예이다이 파일은 OpenSSH가 설치되면서 기본적으로 설치된 설정 파일이다.

 

거의 모든 라인이 코멘트로 설정이 되어 있기 때문에 사실 이 파일에서 데몬에 관해 설정하는 것은 없다즉 이 파일에 코멘트로 만들어 놓은 옵션은 sshd 데몬의 기본 설정이라는 점에 유의하기 바란다.

 

필자는 이 설정 파일에 약간의 코멘트를 추가함으로써 sshd_config 파일에 대한 설명을 마치도록 하겠다.

 

[/etc/ssh/sshd_config]

 

#           $OpenBSD: sshd_config,v 1.53 2002/05/15 21:02:53 markus Exp $

다음은 sshd의 시스템 전역 설정이다더 자세한 설명은 sshd 매뉴얼을 보길 바란다.

 

# This is the sshd server system-wide configuration file.  See sshd(8)

# for more information.

 

 sshd 'PATH=/usr/local/bin:/bin:/usr/bin' 경로로 컴파일이 되었다.

# This sshd was compiled with PATH=/usr/local/bin:/bin:/usr/bin

 

일반적인 경우라고 기본 옵션을 사용하는 것이 가장 좋다.

다음의 각 옵션은 OpenSSH에 설정이 되어 있는 기본 옵션이다만약 기본 옵션을

바꾸고 싶으면 코멘트를 제거한 후 값을 바꾸면 된다.

# The strategy used for options in the default sshd_config shipped with

# OpenSSH is to specify options with their default value where

# possible, but leave them commented.  Uncommented options change a

# default value.

 

기본 sshd 포트는 22번으로 /etc/services 파일을 보면 확인 할 수 있다.

Port 22

지원하는 프로토콜은 SSH2, SSH1이다.

Protocol 2,1

한 대의 컴퓨터가 여러 개의 IP를 가질 때 특정 주소에 대해서만 서비스를 해준다.

#ListenAddress 0.0.0.0

#ListenAddress :0.0.0.0

 

# SSH 버전 2를 위한 호스트키

HostKey /etc/ssh/ssh_host_rsa_key

HostKey /etc/ssh/ssh_host_dsa_key

# SSH 버전 1을 위한 호스트키

Hostkey /etc/ssh/ssh_host_key

 

서버키의 수명과 서버키의 길이

키의 길이는 기본값은 768이고 최대 1024, 최소 512이다.

# Lifetime and size of ephemeral version 1 server key

#KeyRegenerationInterval 3600

#ServerKeyBits 768

 

# Logging

#obsoletes QuietMode and FascistLogging

#SyslogFacility AUTH

#LogLevel INFO

 

인증

성공적으로 로그인을 하지 못했을 경우 앞으로 몇초간 로그인을 못하게 할지 설정

# Authentication:

 

LoginGraceTime 600

루트 사용자의 로그인 여부

PermitRootLogin yes

로그인을 하는 전체 사용자의 파일이나 홈디렉토리의 퍼미션을 체크할지 여부

StrictModes yes

 

# SSH 버전 1을 위한 옵션으로 RSA 인증을 허용할지 여부

RSAAuthentication yes

공개키 인증을 허용할지 여부 SSH 버전 2에만 해당

PubkeyAuthentication yes

공개키를 설치할 파일의 이름

AuthorizedKeysFile          .ssh/authorized_keys

 

# rhosts 인증은 사용하지 말아야 한다.

# rhosts authentication should not be used

#RhostsAuthentication no

# Don't read the 사용자의 ~/.rhosts ~/.shosts를 읽지 않게 한다.

# Don't read the user's ~/.rhosts and ~/.shosts files

#IgnoreRhosts yes

다음이 제대로 작동하기 위해서는 /etc/ssh/ssh_known_hosts이 존재해야 한다.

# For this to work you will also need host keys in /etc/ssh/ssh_known_hosts

#RhostsRSAAuthentication no

# SSH 버전 2와 유사

# similar for protocol version 2

#HostbasedAuthentication no

# RhostsRSAAuthentication HostbasedAuthentication 인증 방법에 대한

# ~./ssh/known_hosts를 신뢰할 수 없을 때 yes로 바꾼다.

# Change to yes if you don't trust ~/.ssh/known_hosts for

# RhostsRSAAuthentication and HostbasedAuthentication

#IgnoreUserKnownHosts no

 

터널링된 단순 문자 비밀번호를 허용하지 않을 때는 no로 바꾼다.

# To disable tunneled clear text passwords, change to no here!

#PasswordAuthentication yes

#PermitEmptyPasswords no

 

# Challenge, Response 인증을 허용할지 여부

# Change to no to disable s/key passwords

#ChallengeResponseAuthentication yes

 

커버로스 옵션

# Kerberos options

#KerberosAuthentication no

#KerberosOrLocalPasswd yes

#KerberosTicketCleanup yes

 

# AFS 토큰이 서버로 전달될지 여부

#AFSTokenPassing no

 

커버러스 TGT가 서버로 포워딩될 수 있는지 여부

# Kerberos TGT Passing only works with the AFS kaserver

#KerberosTgtPassing no

 

# PAM을 사용해서 키보드 입력을 통한 인증을 하기 위해서 yes로 설정

경고 : 이 설정을 활성화하면 'PasswordAuthentication' 옵션은 무시됨

# Set this to 'yes' to enable PAM keyboard-interactive authentication

# Warning: enabling this may bypass the setting of 'PasswordAuthentication'

#PAMAuthenticationViaKbdInt yes

 

# X11 포워딩 기능을 사용할지의 여부이 옵션을 비활성화하더라도 각 사용자는

이 옵션을 재정의하여 사용할 수 있음

#X11Forwarding no

# X11 포워딩할 때 처음 사용 가능한 디스플레이 수를 지정

#X11DisplayOffset 10

# sshd X11 포워딩 서버를 루프백 주소와 바인딩할지 여부를 결정

#X11UseLocalhost yes

사용자가 로그인할 때 /etc/motd 파일의 내용을 보여줄지 여부

#PrintMotd yes

사용자가 최종 로그인한 날짜와 시간을 보여줄지 여부

#PrintLastLog yes

다른 쪽에 TCP keepalive 메시지를 보낼지 여부

한 쪽 시스템이 다운되었을 경우 세션이 계속 연결되어 있는 것을 막기 위해

#KeepAlive yes

상호 대화식 로그인을 위해서 login을 사용할지 여부

#UseLogin no

네트워크로부터 들어온 요청을 처리하기 위해서 별도의 권한을 가진 자식 프로세스

# (Child Process)를 만들지 여부

#UsePrivilegeSeparation no

 

동시 사용자를 처리하기 위해 인증이 되지 않은 연결의 개수

#MaxStartups 10

# no default banner path

접속할 때 보여줄 배너 파일의 경로

#Banner /some/path

원격 컴퓨터의 IP 주소와 이름이 일치하는지 확인할지 여부

#VerifyReverseMapping no

 

외부 서브 시스템을 설정한다 (, FTP)

# override default of no subsystems

Subsystem         sftp       /usr/libexec/openssh/sftp-server

 

 

다음은 SSH 클라이언트 툴인 ssh의 환경 설정 팡리이다전역에 걸친 환경 설정 파일은 /etc/ssh/ssh_config이며 각 개인마다 설정할 내용은 $HOME/.ssh/config 팡리이다.

 

[/etc/ssh/ssh_config]

 

#           $OpenBSD: ssh_config,v 1.12 2002/01/16 17:55:33 stevesk Exp $

 

이 파일은 ssh 클라이언트 툴에 대한 시스템 전역 설정이다자세한 설명은

$ ssh의 매뉴얼을 보면 알 수 있다이 파일은 일반 사용자들에게 기본 설정이며

각 사용자는 자신의 설정을 따로 저장을 하거나 ssh 명령어를 실행할 때 옵션으로

제공할 수 있다.

# This is the ssh client system-wide configuration file.  See ssh(1)

# for more information.  This file provides defaults for users, and

# the values can be changed in per-user configuration files or on the

# command line.

 

환경 설정 데이터는 다음과 같은 순서대로 분석된다.

# 1. 명령어 옵션

# 2. 사용자 개별 설정 파일

# 3. 시스템 전역 설정 파일

어떤 설정 옵션이든지 간에 먼저 설정을 한 것이 설정값으로 적용된다.

따라서 각 컴퓨터에 한정된 정의가 먼저 나오고 다른 디플트값이 뒤에 나와야 한다.

# Configuration data is parsed as follows:

#  1. command line options

#  2. user-specific file

#  3. system-wide file

# Any configuration value is only changed the first time it is set.

# Thus, host-specific definitions should be at the beginning of the

# configuration file, and defaults at the end.

 

사이트 전역에 걸친 다양한 기본 옵션 설정들

# Site-wide defaults for various options

 

이 파일의 설정에 영향을 받는 호스트 컴퓨터의 이름 '*'  '?'이 사용될 수 있다.

# '*'를 사용하면 설정이 모든 컴퓨터에 영향을 미친다는 의미이다.

   Host *

인증 절차를 위해서 리모트에 있는 컴퓨터로 포워딜 될 것인지 여부

   ForwardAgent no

# X11 연결이 자동으로 보안 채널을 통해 리다이렉트 될지 여부

   ForwardX11 no

사용할 인증 방법을 정의

   RhostsAuthentication yes

   RhostsRSAAuthentication yes

   RSAAuthentication yes

   PasswordAuthentication yes

# sshd 데몬이 없는 것과 같은 이유로 인해서 연결을 실패했을 때 rsh를 사용할지 여부

   FallBackToRsh no

# rlogin/rsh를 사용할지 여부. SSH 프로토콜을 지원하지 않을 때 사용할 수 있다.

   UseRsh no

# AFS 토큰을 리모트 서버에 전달할지 여부

   BatchMode no

호스트 IP 주소를 known_hosts 파일에서 추가적으로 찾는다.

   CheckHostIP yes

# yes - $HOME/.ssh/known_hosts 파일에 호스트를 추가하지 않는다.

# no - $HOME/.ssh/known_hosts 파일에 호스트를 자동으로 추가한다.

# ask - 사용자의 확인을 받은 후 $HOME/.ssh/known_hosts 파일에 호스트를 추가한다.

   StrictHostKeyChecking ask

개인키 파일의 위치

   IdentityFile ~/.ssh/identity

   IdentityFile ~/.ssh/id_rsa

   IdentityFile ~/.ssh/id_dsa

포트번호지원 프로토콜

   Port 22

   Protocol 2,1

# SSH 버전 1을 위한 암호화 알고리즘

   Cipher 3des

# SSH 버전 2를 위한 암호화 알고리즘순서대로 운선 순위가 있다.

   Ciphers aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,arcfour,aes192-cbc,aes256-cbc

# Escape 문자

   EscapeChar ~

 

환경 설정 파일에 대한 기본적인 설명만을 하였다더 자세한 옵션에 대해서 알고 싶은 독자는 ssh, sshd man 페이지를 확인해보기 바란다.


출처 : http://blog.pages.kr/423

'OS - Linux > Linux - SSH' 카테고리의 다른 글

SSH 공개키를 이용한 로그인  (0) 2013.12.12

이 글을 공유합시다

facebook twitter kakaoTalk kakaostory naver band
loading