SSHD(8)

명칭
sshd - OpenSSH SSH demon

서식
sshd [-deiqtD46] [-b 비트수] [-f 설정 파일] [-g 로그인 유예 시간] [-h 호스트열쇠 파일] [-k 열쇠의 생성 간격] [-o 옵션] [-p 포트 번호] [-u 길이]

해설
sshd (SSH demon)(은)는 ssh(1) (을)를 위한 demon 프로그램입니다. 이러한 프로그램은 함께 rlogin 와 rsh 를 옮겨놓는 것으로, 안전하지 않은 네트워크상에 있는, 2개의 신뢰되어 있지 않은 호스트간으로, 암호화된 안전한 통신을 제공합니다. 이러한 프로그램은 가능한 한 간단하게 인스톨 해 사용할 수 있도록(듯이) 배려되고 있습니다.

sshd (은)는 클라이언트로부터의 접속을 listen 하고 있는 demon입니다. 통상 이것은 부트시에 /etc/rc.d/sshd (으)로부터 기동되어 접속을 받아들일 때마다 새로운 demon가 fork 합니다. Fork 한 demon는, 열쇠의 교환, 암호화, 인증, 명령 실행, 그리고 데이터 교환을 행합니다. 이 sshd 의 실장에서는, SSH 프로토콜 버젼 1 으로 2 를 동시에 서포트하고 있습니다. sshd (은)는 이하와 같이 동작합니다.

  SSH 프로토콜 버젼 1

각 호스트는, 그 호스트에 고유의 RSA 열쇠 (통상 1024 비트)를 갖고 있습니다. 이것은 각각의 호스트를 식별하는데 사용됩니다. 더해, demon는 기동시에 서버용 RSA 열쇠 (통상 768 비트)를 생성합니다. 이 열쇠는 보통 사용되면(자) 1다시 시간 간격으로 생성해 디스크에 보존되는 것은 결코 없습니다.

클라이언트가 접속해 오면(자), demon는 그 공개 호스트열쇠 및 서버열쇠를 돌려줍니다. 클라이언트는 자신이 가지고 있는 데이타베이스와 이 RSA 호스트열쇠를 비교해, 그것이 변경되어 있지 않은 것을 확인합니다. 다음에 클라이언트는 256 비트의 난수를 생성합니다. 이것을 그 호스트열쇠와 서버열쇠 양쪽 모두를 사용해 암호화해, 암호화된 수치를 서버에 보냅니다. 이 때, 어느 쪽의 옆도 이 수치를 세션열쇠로서 사용합니다. 세션열쇠와는 이 이후의 모든 통신을 암호화하는데 사용되는 것으로, 이후 세션은 기존의 암호화 알고리즘을 사용해 암호화됩니다. 이러한 알고리즘은 현재로서는 Blowfish 또는 3DES 로, 디폴트에서는 3DES 가 되고 있습니다. 클라이언트는 서버에 의해 제안된 암호화 알고리즘으로부터 사용하는 것을 선택합니다.

다음에, 서버와 클라이언트는 인증을 위한 대화에 들어갑니다. 클라이언트는 자기 자신의 신분을 증명하기 위해(때문에), .rhosts 인증이나, RSA 호스트 인증과 조합했다 .rhosts 인증, RSA 챌린지·리스폰스 인증, 혹은 패스워드 인증을 사용하려고 합니다.

Rhosts 인증은 근본적으로 안전하지 않기 때문에, 보통은 금지되고 있습니다. 그러나 필요와 하면 서버의 설정 파일에 의해 허가할 수도 있습니다. rshd, rlogind, 및 rexecd (을)를 멈추지 않는 한 (이것은 rlogin (와)과 rsh (을)를 완전하게 금지하게 됩니다만), 시스템의 보안는 개선되지 않습니다.

  SSH 프로토콜 버젼 2

버젼 2 도 이와 같이 동작합니다: 각 호스트는 고유의 호스트열쇠 (RSA 또는 DSA)를 가지고 있어 이것으로 호스트를 식별합니다. 그러나 demon가 개시한 시점에는 서버열쇠는 생성되지 않습니다. 보다 진보한 보안는 Diffie-Hellman 열쇠 교환에 의해 얻을 수 있습니다. 이 열쇠 교환으로부터 공통의 세션열쇠를 얻을 수 있습니다.

이 이후 세션은 대칭적 암호화 알고리즘을 이용해 암호화됩니다. 알고리즘은, 현재로서는 128비트 AES, Blowfish, 3 DES, CAST128, Arcfour, 192비트 AES 혹은 256비트 AES 입니다. 클라이언트는 서버가 제안한 암호화 알고리즘을 선택합니다. 이것에 가세해, 암호화 메세지 인증 코드 (hmac-sha1 혹은 hmac-md5)에 의해, 세션의 내용이 도중에 개찬되어 버릴리가 없게 합니다.

프로토콜 버젼 2 에서는 공개열쇠에 근거하는 유저 인증 (PubkeyAuthentication)과 클라이언트 호스트 인증 (HostbasedAuthentication), 이것에 가세해 종래의 패스워드 인증과 챌린지·리스폰스 인증이 사용할 수 있습니다.

  명령 실행과 데이터 전송

클라이언트가 자기 자신의 증명에 성공하면(자), 세션을 준비하기 위한 대화가 시작됩니다. 이후에 클라이언트는 가상 단말을 할당하거나 X11 접속을 전송 하거나 TCP/IP 접속을 전송 하거나 혹은 안전한 통신로를 경유해 인증 에이전트의 접속을 전송 하거나 합니다.

마지막으로, 클라이언트는 쉘인가, 혹은 명령의 실행의 어느 쪽인지를 요구합니다. 여기서 쌍방은 세션 모드에 들어갑니다. 이 모드에서는 양자는 언제라도 데이터를 보낼 수가 있어 그 데이터는 서버측의 쉘 또는 명령와 클라이언트측의 유저 단말로 거래됩니다.

유저의 프로그램이 종료해, 전송 된 모든 X11 접속이나 그 외의 접속이 닫혀지면(자), 서버는 클라이언트에 명령의 종료 상태를 보내, 양자는 종료합니다.

sshd (은)는 명령행 옵션인가, 설정 파일에 의해 설정하는 것이 할 수 있습니다. 명령행으로부터의 옵션은, 설정 파일로 지정되어 있는 값보다 우선됩니다.

sshd (은)는 행업 시그널 SIGHUP (을)를 받으면(자), 자신의 설정 파일을 다시 읽어들입니다. 이것은 자기 자신을 개시했을 때의 패스명 /usr/sbin/sshd (을)를 exec 하는 것에 의해 행합니다.

명령행 옵션에는 다음과 같은 것이 있습니다:

-b 비트수
    프로토콜 버젼 1 으로 단기적으로 사용되는 서버열쇠의 비트수를 지정합니다 (디폴트에서는 768 비트입니다).

-d  디버그 모드로 합니다. 서버는 시스템 로그에 대해, 장황한 디버그 표시를 출력하게 되어, 백그라운드에는 이행 하지 않습니다. 또 서버는 fork 하지 않고, 1회의 접속 밖에 받아들이지 않습니다. 이 옵션은 서버의 디버그 (을) 위해서만 준비되어 있습니다. 복수의 -d 옵션을 붙이면(자) 디버그 레벨이 오릅니다. 최고는 3 입니다.

-e  이 옵션이 지정되면(자), sshd (은)는 출력을 syslog 의 것인지 비교적 표준 에러 출력에 보냅니다.

-f 설정 파일
    설정 파일의 이름을 지정합니다. 디폴트는 /etc/ssh/sshd_config (이)가 되어 있습니다. sshd (은)는 설정 파일이 없으면 기동하지 않습니다.

-g 로그인 유예 시간
    클라이언트가 자기 자신을 인증하는데 걸리는 유예 시간을 줍니다 (디폴트는 120초). 클라이언트가 이 시간내에 유저를 인증할 수 없었던 경우, 서버는 접속을 잘라 종료합니다. 제로를 값으로 해서 주면(자) 유예는 무한하게 됩니다.

-h 호스트열쇠 파일
    호스트열쇠를 읽는 파일을 지정합니다. 이 옵션은 sshd (을)를 root 이외로 기동할 때는 반드시 지정하지 않으면 안됩니다 (호스트열쇠의 파일은 보통 root 겨자인가 읽을 수 없게 되어 있기 때문입니다). 디폴트에서는, 프로토콜 버젼 1 용의 열쇠가 /etc/ssh/ssh_host_key (이어)여, 프로토콜 버젼 2 용의 열쇠가 /etc/ssh/ssh_host_dsa_key 입니다. 다른 버젼의 프로토콜이나 호스트열쇠의 방식에 대해, 복수의 호스트열쇠 파일을 지정하는 일도 가능합니다.

-i  sshd 하지만 inetd 로부터 기동되는 것을 지정합니다. sshd (은)는 보통 inetd 로부터는 기동되지 않습니다. 왜냐하면 이것은 클라이언트를 받아들이기 전에 서버열쇠를 생성해 둘 필요가 있어, 이것에는 수십초 걸리기 (위해)때문입니다. 열쇠가 매회 생성 다시 해지면(자), 클라이언트는 매우 오랫동안 기다리게 되어 버립니다. 그러나 열쇠의 사이즈가 작으면 (예를 들어 512 비트 정도로), inetd 로부터 sshd (을)를 사용하는 일도 가능하겠지요.

-k 열쇠의 생성 간격
    서버열쇠가 어느 정도의 간격으로 재생성되는지를 지정합니다 (디폴트에서는 3600초, 즉 1시간 마다가 되어 있습니다). 이렇게 빈번하게 열쇠를 재생성하는 것은 이하와 같은 이유에 의합니다. 이 열쇠는 어디에도 격납되지 않습니다. 그 때문에, 이와 같이 해 두면(자) 비록 머신이 크랙 되거나 물리적으로 납치되거나 해도, 1시간 후에는 도청한 통신을 해독해 열쇠를 찾아내는 것은 불가능하게 됩니다. 이 값으로 해서 제로를 지정하면(자), 열쇠는 전혀 재생성되지 않게 됩니다.

-o 옵션
    설정 파일과 같은 형식에서 옵션을 주고 싶을 때에 사용합니다. 이것은 명령행 옵션에서는 지정할 수 없는 옵션을 지정하고 싶을 때에 편리합니다.

-p 포트 번호
    서버가 접속을 받아들이는 (listen 한다) 포트 번호를 지정합니다 (디폴트는 22 입니다). 복수의 포트 옵션을 지정하는 일도 가능합니다. 덧붙여 명령행 옵션으로 포트를 지정했을 경우, 설정 파일로 지정된 포트는 무시됩니다.

-q  조용한 모드. 보통, sshd (은)는 접속의 개시와 인증 및 종료를 syslog 에 남깁니다. 이 옵션을 지정하면(자) syslog 에는 아무것도 남지 않습니다.

-t  테스트 모드. 설정 파일이나 열쇠의 정당성 체크만을 행합니다. 이것은 설정 파일 항목을 변경했을 때에, sshd (을)를 안전하게 갱신하는데 편리합니다.

-u 길이
    이 옵션은 리모트 호스트명을 보관 유지시킨다 utmp 구조체의 필드장을 지정하는데 사용됩니다. 이름 해석 된 호스트가 이 len 보다 긴 경우, 닷으로 단락지어진 10진의 수치가 대신에 보관 유지됩니다. 이것은 매우 긴 호스트명을 가지는 호스트가 이 필드를 넘치게 해도, 일의에 식별할 수 있도록(듯이) 하기 (위해)때문입니다. -u0 (을)를 지정하면(자) utmp 파일에는 항상 닷으로 단락지어진 10진치가 사용되게 됩니다. 또 -u0 하 sshd 하지만 DNS 요구를 행하지 않게 하는데도 사용됩니다. 다만 설정 파일이나 인증 메카니즘으로 이것이 필요하게 되었다 경우는 이 마지막으로는 없습니다. DNS 를 요구할 가능성이 있는 인증 메카니즘은 RhostsAuthentication, RhostsRSAAuthentication, HostbasedAuthentication 및 from="pattern-list" 옵션을 사용한 열쇠 파일입니다. DNS 를 필요로 하는 설정 옵션에는, AllowUsers 혹은 DenyUsers. 그리고 사용되고 있는 「USER@HOST」의 패턴도 포함되기 때문에 주의해 주세요.

-D  이 옵션이 지정되면(자) sshd (은)는 분리 (detach)를 행하지 않고, demon로는 되지 않습니다. 이것은 sshd 의 감시를 간단하게 합니다.

-4  sshd 하지만 IPv4 주소만을 사용하도록(듯이) 강제합니다.

-6  sshd 하지만 IPv6 주소만을 사용하도록(듯이) 강제합니다.

설정 파일
sshd 하 /etc/ssh/sshd_config (혹은 명령행으로부터 -f 옵션으로 지정한 파일)로부터 설정을 읽어들입니다. 이 파일의 형식과 설정 항목은 sshd_config(5) 그리고 설명되고 있습니다.

로그인의 과정
유저가 로그인에 성공하면(자), sshd (은)는 이하를 행합니다:

1.  유저가 단말에 로그인하고 있어, 명령이 특별히 지정되어 있지 않은 경우, (설정 파일 또는 $HOME/.hushlogin -- FILES 의 항을 참조 -- 로 금지되지 않으면) 전회의 로그인 시각과 /etc/motd (을)를 표시한다.

2.  유저가 단말에 로그인하고 있는 경우, 로그인 시각을 기록한다.

3.  /etc/nologin (와)과 /var/run/nologin (을)를 체크한다. 이것이 존재하는 경우, 그 내용을 표시해 종료한다 (root 이외).

4.  그 유저의 통상의 권한으로 이행한다.

5.  기본적인 환경 변수를 설정한다.

6.  $HOME/.ssh/environment 하지만 존재하고 있어, 유저의 환경 변수를 변경하는 것이 허락되고 있으면, 그것을 읽어들인다. sshd_config(5) 의 PermitUserEnvironment 설정 항목을 참조.

7.  유저의 홈 디렉토리로 이동한다.

8.  $HOME/.ssh/rc 하지만 존재하는 경우, 그것을 실행한다. 그렇지 않으면, 만약 /etc/ssh/sshrc 하지만 존재하고 있다면, 그것을 실행한다. 이외의 경우는 xauth(1) (을)를 실행한다. 이 “rc” 파일에는, X11 의 인증 프로토콜과 (적용 가능하면) 그 쿠키가 표준 입력으로부터 주어진다.

9.  유저의 쉘 또는 명령을 실행한다.

authorized_keys 파일의 형식
$HOME/.ssh/authorized_keys 파일은, 프로토콜 버젼 1 에 있어서의 RSA 인증과 프로토콜 버젼 2 에 있어서의 공개열쇠 인증 (PubkeyAuthentication)으로 로그인이 용서되고 있는 공개열쇠를 격납하는 것입니다. 다른 파일을 사용하고 싶은 경우는 AuthorizedKeysFile 그리고 지정할 수 있습니다.

이 파일에는 각 행에 하나의 열쇠가 격납되고 있습니다 (공행이나 ‘#’ 그리고 시작되는 행은 코멘트로서 무시됩니다). 프로토콜 버젼 1 의 RSA 열쇠에서는, 공백에서 단락지어진 다음과 같은 필드가 격납되고 있습니다: 옵션, 비트수, 지수, 모듈로, 열쇠의 코멘트. 프로토콜 버젼 2 로 사용하는 공개열쇠에서는 다음의 필드가 격납되고 있습니다: 옵션, 열쇠의 종류, base64 encode 된 열쇠 본체, 열쇠의 코멘트. 옵션의 필드는 없어도 괜찮습니다. 옵션이 존재할지 어떨지는, 이 행이 숫자 혹은 피리어드로 시작되는지 어떤지에 의해 결정됩니다 (옵션필드는 결코 숫자에서는 시작되지 않습니다). 프로토콜 버젼 1 에서는, RSA 열쇠는 비트수, 지수 및 모듈로에 의해 나타내집니다. 코멘트란은 이용되지 않습니다 (가, 열쇠를 구별하는데 도움이 됩니다). 프로토콜 버젼 2 에서는, 열쇠의 종류는 “ssh-dss” 혹은 “ssh-rsa” 입니다.

이러한 파일에서는 통상 1행이 몇백 바이트의 길이에 되어 있는 것에 주의해 주세요 (이것은 공개열쇠의 계수의 사이즈가 크기 때문입니다). 이것을 손으로 타이프 칠 생각은 되지 않을 것입니다. 대신에 identity.pub, id_dsa.pub 혹은 id_rsa.pub (을)를 카피해, 그것을 편집해 주세요.

sshd 그럼, 프로토콜 1 으로 프로토콜 2 의 양쪽 모두로, RSA 열쇠의 길이가 적어도 768비트 이상일 필요가 있습니다.

옵션은 (만약 있으면) 칸마에 의해 단락지을 수가 있습니다. 사이에 스페이스를 들어갈 수 있고는 안됩니다만, 더블 쿼트의 사이에는 오케이입니다. 이하의 옵션이 서포트되고 있습니다 (이러한 키워드는 대문자 소문자를 구별하지 않습니다) :

from="pattern-list"
    이 옵션을 붙이면(자), 공개열쇠 인증에 가세해, 클라이언트의 호스트를 체크할 수 있게 됩니다. 칸마로 단락지은 리모트 호스트명 (canonical name)의 패턴열을 지정할 수 있습니다 ( (‘*’ 및 ‘’? 하지만 와일드 카드로서 사용할 수 있습니다). 이 리스트에는 「~가 아니다」라고 하는 부정 (negation)을 넣을 수도 있습니다. 그 경우는 패턴의 선두에 ‘’!; (을)를 붙여 주세요. 부정포함의 패턴에 호스트의 canonical name 가 매치 했을 경우, 이 열쇠는 허가되지 않습니다. 이 옵션은 보안를 올리기 위해서(때문에) 붙여졌습니다: 공개열쇠 인증 그 자체는, (열쇠를 제외해) 네트워크나 네임서버, 그 외 온갖 것을 신용하지 않습니다. 그러나, 만약 무엇인가가 어떠한 방법으로 열쇠를 훔칠 수가 있으면, 그 열쇠를 사용해 세계의 어디에서라도 로그인 가능하게 되게 됩니다. 이 옵션은, 그러한 도둑맞은 열쇠를 사용하는 것을 보다 곤란하게 합니다 (만약 이것을 사용하려고 한다면, 열쇠 외에 네임서버나 라우터까지도 손을 넣지 않으면 안 되기 때문입니다).

command="command"
    이 옵션을 사용하면(자), 인증에 이 열쇠가 사용되었을 때는 반드시 여기서 지정된 명령이 실행되게 됩니다. 유저가 (역주: 클라이언트측에서) 지정한 명령은 무시됩니다. 클라이언트측이 가상 단말을 요구하고 있으면, 여기서 지정된 명령은 가상 단말상에서 실행됩니다. 그렇지 않으면 단말없이 실행됩니다. 8-bit 깨끗한 통신을 갖고 싶은 경우는, 가상 단말을 요구 해서는 안됩니다. 혹은 no-pty 옵션을 사용해 주세요. 명령 캐릭터 라인중에 인용부호 (")를 넣고 싶을 때는, backslash를 앞에 두고 붙여 주세요. 이 옵션은, 어느 공개열쇠에는 특정의 조작밖에 시키지 않게 하는데 유효합니다. 예로서 리모트 백업만을 시켜, 그 이외인 굳이 시키지 않는 것 같은 열쇠를 만들 수 있습니다. 클라이언트의 TCP/IP 나 X11 전송은, 명시적으로 금지되지 않은 한 가능해서 주의해 주세요. 이 옵션은 쉘, 명령 또는 하부조직의 실행에 적용됩니다.

environment="NAME=value"
    인증에 이 열쇠가 사용되었을 때, 환경 변수에 추가되는 캐릭터 라인을 지정합니다. 이 사용 방법으로 지정한 환경 변수는, 디폴트의 환경 변수의 값을 덧쓰기합니다. 이 옵션은 복수 지정하는 일도 가능합니다. 환경 변수의 변경은 디폴트에서는 금지되고 있어 이것을 허가하려면 PermitUserEnvironment (을)를 설정할 필요가 있습니다. UseLogin (을)를 사용하고 있을 때는, 이 옵션은 자동적으로 금지됩니다.

no-port-forwarding
    인증에 이 열쇠가 사용되었을 때는 TCP/IP 전송이 금지됩니다. 클라이언트가 포트 전송을 요구해도, 모두 에러가 됩니다. 이것은 예를 들어 command 옵션의 지정되어 있는 접속등으로 사용됩니다.

no-X11-forwarding
    인증에 이 열쇠가 사용되었을 때는 X11 전송이 금지됩니다. 클라이언트가 X11 전송을 요구해도, 모두 에러가 됩니다.

no-agent-forwarding
    인증에 이 열쇠가 사용되었을 때는, 인증 에이전트의 전송이 금지됩니다.

no-pty
    단말의 할당을 금지합니다 (가상 단말의 할당이 실패하게 됩니다).

permitopen="host:port"
    로컬인 ``ssh -L'' 의 포트 전송처를, 지정된 호스트의 지정된 포토에만 한정합니다. IPv6 주소의 경우는, 지정하는 형식이 다릅니다: host/port permitopen 옵션은 칸마로 단락지어 복수 지정할 수도 있습니다. 패턴 매칭은 행해지지 않습니다. 호스트명에는 도메인명이나 주소를 그대로 쓸 필요가 있습니다.

  authorized_keys 파일의 예:
1024 33 12121. . . 312314325 ylo@foo.bar

from="*.niksula.hut.fi,! pc.niksula.hut.fi" 1024 35 23. . . 2334 ylo@niksula

command="dump /home", no-pty, no-port-forwarding 1024 33 23. . . 2323 backup.hut.fi

permitopen="10.2. 1.55:80", permitopen="10.2. 1.56:25" 1024 33 23. . . 2323

ssh_known_hosts 파일의 형식
/etc/ssh/ssh_known_hosts 및 $HOME/.ssh/known_hosts 의 각 파일은 지금까지 알려져 있다 호스트의 공개열쇠를 모두 격납하고 있습니다. 시스템용의 known_hosts 파일 (포괄적 known_hosts 파일)(은)는 관리자에 의해 준비되고 (필수가 아닙니다), 유저용의 known_hosts 파일은 자동적으로 갱신됩니다. 이것은, 유저가 아직 알려지지 않은 호스트에 접속하면(자), 그 호스트열쇠가 자동적으로 유저용 known_hosts 파일에 추가되게 되어 있습니다.

이것들 known_hosts 파일의 각 행은 다음과 같은 필드로부터 되어 있습니다: 호스트명, 비트수, 지수, 계수, 그리고 코멘트. 각 필드는 스페이스에 의해 단락지어지고 있습니다.

호스트명은 칸마로 단락지어진 패턴열입니다 ( ‘*’ 및 ‘’? (은)는 와일드 카드로서 사용됩니다). 각 패턴은 (클라이언트를 인증하고 있다 때는) 순서에 그 호스트의 정식명으로 비교되든가, 혹은 (서버를 인증하고 있을 때는) 유저가 준 이름이라고 비교됩니다. 패턴의 선두에 ‘’! (을)를 붙이면(자) 「~가 아니다」라고 하는 부정 (negation)의 의미가 됩니다. 부정된 패턴에 매치 한 호스트는, 비록 그 행의 다른 패턴에 매치 해도 (그 행에서는) 받아들일 수 없습니다.

비트수, 지수 및 계수는 RSA 호스트열쇠로부터 직접 받아들여집니다. 예를 들어 이것들은 /etc/ssh/ssh_host_key.pub 등에서 취득됩니다. 옵션의 코멘트 필드는 줄 끝까지 계속되어, 이것은 무시됩니다.

‘#’ 그리고 시작되는 행 및 공행은 코멘트로서 무시됩니다.

호스트간 인증을 행하고 말이야 있고, 어떤 것인가 적절한 열쇠를 가진 행이 매치 하면, 인증은 받아들여집니다. 따라서 같은 이름이 복수의 행에 있거나 동일 호스트에 다른 호스트열쇠가 써 있기도 해도 받아들일 수 있습니다 (가, 추천은 하지 않습니다). 다른 도메인에 있는 호스트명의 단축형이 하나의 파일에 정리하고 있을 때는, 이것은 어쩔 수 없을 것입니다. 또, 이러한 파일에는 모순되는 정보가 쓰여져 있는 일도 있습니다. 그 경우는, 어떤 것인가의 파일에 올바른 정보가 써 있으면 인증은 받아들여집니다.

주의. 이러한 파일의 각 행은, 보통 몇백 캐릭터의 길이가 되어 있습니다. 물론 이런 호스트열쇠를 손으로 입력하고 싶지는 않을 것입니다. 대신에 스크립트로 생성하는지, /etc/ssh/ssh_host_key.pub (을)를 취해 와 그 선두에 호스트명을 첨가할까 해 주세요.

  예:

    closenet,. . . , 130.233. 208.41 1024 37 159. . . 93 closenet.hut.fi
    cvs.openbsd.org, 199.185. 137.3 ssh-rsa AAAA1234.....=

관련 파일

/etc/ssh/sshd_config
    sshd 의 설정 파일입니다. 이 파일의 형식과 설정 항목은 sshd_config(5) 그리고 설명되고 있습니다.

/etc/ssh/ssh_host_key, /etc/ssh/ssh_host_dsa_key
    이것들 3개의 파일은 호스트의 비밀열쇠를 격납합니다. 이 파일은 root 가 소유해, root 만이 읽어들여 가능하게 해야 하고, 이외의 누구에게도 읽게 해서는 안됩니다. sshd (은)는 이 파일을 누구라도 읽을 수 있게 되어 있으면(자) 기동하지 않기 때문에 주의해 주세요.

/etc/ssh/ssh_host_key.pub, /etc/ssh/ssh_host_dsa_key.pub
    이것들 3개의 파일은 호스트의 공개열쇠를 격납합니다. 이 파일은 누구라도 읽을 수 있게 되어 있을 필요가 있습니다만, 기입할 수 있는 것은 root 인 만큼 해 주세요. 이 내용은 비밀열쇠의 파일과 대응하고 있습니다. 이 파일이 실제로 사용될 것은 없습니다. 이것은 단지 유저의 편의를 도모하기 (위해)때문에인 만큼 존재해, 유저는 이것을 known_hosts 파일에 카피한다 일이 생깁니다. 이것들 2개의 파일 (비밀열쇠와 공개열쇠)은 ssh-keygen(1) (을)를 사용해 생성할 수가 있습니다.

/etc/ssh/moduli
    Diffie-Hellman 열쇠 교환 (Diffie-Hellman Group Exchange)으로 사용되는, Diffie-Hellman 군을 격납합니다. 이 파일의 형식은 moduli(5) 그리고 설명되고 있습니다.

/var/empty
    sshd 하지만 특권 분리의 차이에, 인증전의 단계에서 사용한다 chroot(2) 용무의 디렉토리입니다. 이 디렉토리는 어떤 파일도 포함하고 있어 안되어, 소유자는 root 로 그룹 혹은 타인이 써 넣을 수 있게 되어 있어서는 안됩니다.

/var/run/sshd.pid
    현재 접속을 받아들이고 있다 sshd 의 프로세스 ID 가 들어가 있습니다 (복수의 sshd 하지만 다른 포트로 달리고 있을 때는, 마지막에 개시한 프로세스의 ID 가 들어갑니다). 이 파일의 내용은 기밀 사항이 아니고, 누구라도 읽을 수 있도록(듯이) 해 괜찮습니다.

$HOME/.ssh/authorized_keys
    그 유저의 어카운트로 로그인할 경우에 사용되는 공개열쇠 (RSA 또는 DSA)의 일람이 들어가 있습니다. 이 파일은 root 에 읽을 수 있게 되어 있을 필요가 있습니다 (즉 그 유저의 홈 디렉토리가 별호스트의 NFS 볼륨상에 있는 것 같은 경우, (역주: 일반적으로 NFS 에서는 타호스트로부터의 root 액세스를 인정하지 않기 때문에) 그 파일은 누구라도 읽을 수 있게 되지 않으면 안됩니다). 그렇지만 이것은 다른 사람에게는 읽을 수 없게 해 두는 것을 진행시킵니다. 이 파일의 형식은 위에서 설명되고 있습니다. 유저는 자신의 identity.pub, id_dsa.pub (이)나 id_rsa.pub 파일의 내용을 이 파일에 넣어 둡니다. 이것은 ssh-keygen(1) 그리고 설명되고 있습니다.

/etc/ssh/ssh_known_hosts and $HOME/.ssh/known_hosts
    이러한 파일은, 프로토콜 버젼 1 의 RSA 호스트간 인증 또는 프로토콜 버젼 2 의 호스트 베이스 인증과 함께 rhosts 파일을 사용할 때, 상대 호스트의 공개열쇠를 체크하기 위해서 사용됩니다. 인증이 성공하기 위해서(때문에)는, 이러한 파일의 어딘가에 상대의 호스트열쇠가 격납되어 있지 않으면 안됩니다. 한편, SSH 클라이언트는 이 파일을, 접속처의 리모트 호스트가 정말로 접속하려고 하고 있다 호스트인지 어떤지 확인하는데 사용합니다. 이러한 파일은 root 와 소유자에게는 기입해 가능하게 해 둡니다. /etc/ssh/ssh_known_hosts (은)는 누구로부터에서도 읽을 수 있도록 해 두어 주세요. $HOME/.ssh/known_hosts (은)는 별로 그렇게 할 필요는 없습니다.

/etc/nologin
    이 파일이 존재하고 있으면(자), sshd (은)는 root 를 제외하는 모든 유저의 로그인을 거부합니다. 이 파일의 내용은 root 이외로 로그인하려고 해 거부된 사람에 대해서 표시됩니다. 이 파일은 누구라도 읽을 수 있게 되어 있을 필요가 있습니다.

/etc/hosts.allow, /etc/hosts.deny
    이 파일은 tcp-wrappers 에 의한 액세스 제한을 정의하고 있습니다. 자세한 설명은 hosts_access(5) (을)를 참조해 주세요.

$HOME/.rhosts
    이 파일에는, 각 행에 호스트명과 유저명의 대를 스페이스에서 단락지어 격납합니다. 해당 호스트의 지정된 유저로부터는 패스워드 없음의 로그인이 허가됩니다. 이 파일은 rlogind 및 rshd 로부터도 사용됩니다. 이것은 그 유저에게만 기입할 수 있도록(듯이) 해 두어, 다른 사람으로부터는 액세스 불가능하게 해 두는 것이 좋을 것입니다.

    이 파일에서는 넷 그룹 (netgroup)을 사용할 수도 있습니다. 호스트명이나 유저명은 +@groupname 와 같은 형식에서 쓸 수가 있어 이 경우는 그 그룹중의 모든 호스트 혹은 유저가 지정됩니다.

$HOME/.shosts
    ssh 는, 이것을 .rhosts (와)과 완전히 똑같이 취급합니다. 그러나 이것은 rlogind 나 rshd 로부터는 사용되지 않기 때문에, SSH 를 사용했을 때 마셔 액세스를 허가할 경우에 이 파일을 사용합니다.

/etc/hosts.equiv
    이 파일은 .rhosts 인증의 차이에 사용됩니다. 가장 간단한 형식은, 각 행에 하나의 호스트명을 써 두는 것입니다. 이러한 호스트로부터의 유저는, 양쪽 모두의 머신으로 유저명이 같으면 패스워드없이 로그인이 허가됩니다. 호스트명의 후에 유저명을 붙일 수도 있습니다. 이 경우, 그 유저는 이 머신상에서 어떤 유저로서도 로그인 가능하게 됩니다 (root 를 제외한다). “+@group” (와)과 같은 형식에서 넷 그룹 (netgroup)을 지정할 수도 있습니다. 부정의 엔트리는 선두에 ‘-’ (을)를 붙여 주세요.

    만약 상대의 클라이언트, 혹은 거기의 유저가 이 파일에 매치 하는 경우, 클라이언트측과 서버측의 유저명이 같으면 로그인은 자동적으로 허가됩니다. 통상은 이것에 가세해 RSA 호스트간 인증이 성공하고 있는 것이 필요합니다. 이 파일은 root 밖에 기입해 가능하게 해서는 안됩니다. 또, 누구라도 읽을 수 있도록(듯이) 해 두는 편이 좋을 것입니다.

    「경고: hosts.equiv 로 유저명을 사용하는 것은 절대로 그만두어야 합니다」

    이것은 그 유저가 정말로 누구로서에서도 로그인 가능하게 되게 됩니다. 즉 bin 나 daemon 나 adm 나, 그 외 매우 중요한 바이너리나 디렉토리를 소유하고 있는 어카운트에서도 로그인할 수 있습니다. 유저명을 사용하는 것은, 실제로는 그 유저에게 root 의 액세스를 허락하고 있는 것과 같습니다. 여기서의 유저명의 유일한 착실한 사용 길은, 아마 부정의 엔트리로 사용하는 것 뿐이지요.

    여기서의 경고는 rsh/rlogin 에도 들어맞는 것을 기억해 둬 주세요.

/etc/ssh/shosts.equiv
    이것은 /etc/hosts.equiv (와)과 완전히 똑같이 사용됩니다. 이 파일은 rsh 나 rlogin 를 ssh 와 같은 환경에서 움직일 때 유용하겠지요.

$HOME/.ssh/environment
    이 파일은 (존재하고 있으면) 로그인시에 환경 변수에 읽히고 ‘#’ 그리고 시작된다), 및 ``변수명=치''의 형식의 대입행 뿐입니다. 이 파일은 그 유저에게만 기입해 가능하게 해 두어 주세요. 특별히 타인이 읽을 수 있도록(듯이) 해 둘 필요도 없습니다. 환경 변수의 변경은 디폴트에서는 금지되고 있어 이것을 허가하려면 PermitUserEnvironment (을)를 설정할 필요가 있습니다.

$HOME/.ssh/rc
    이 파일이 존재하고 있으면(자), 환경 변수 파일이 읽혔다 후에 이 파일이 /bin/sh 에 의해 실행됩니다. 이것은 유저의 쉘 혹은 명령의 실행보다 전에 행해집니다. 이 파일은 표준 출력에는 굳이 출력 해서는 안됩니다. 대신에 표준 에러 출력을 사용해 주세요. X11 전송을 사용하고 있을 때는, 이 스크립트에는 표준 입력으로부터 ``프로토콜 쿠키''의 대 ( 및 환경 변수에는 DISPLAY )(이)가 주어집니다. 이 때, 스크립트는 xauth(1) (을)를 호출할 필요가 있습니다. 왜냐하면 sshd (은)는 이 경우 X11 쿠키를 추가하기 위한 xauth 를 자동적으로는 실행하지 않기 때문입니다.

    이 파일의 기본적인 목적은, 유저가 홈 디렉토리에 액세스 가능하게 되기 전에 필요라고 생각되는 초기화 routine를 실행하는 것입니다. 특히 이러한 환경의 예로서 AFS 가 있습니다.

    아마 이 파일은, 예를 들어 다음과 같은 어떠한 초기화 코드를 포함하게 되겠지요:

        if read proto cookie && [ -n "$DISPLAY" ]; then
        	if [ `echo $DISPLAY | cut -c1-10` = 'localhost:' ]; then
        		# X11UseLocalhost=yes
        		echo add unix:`echo $DISPLAY |
        		    cut -c11-` $proto $cookie
        	else
        		# X11UseLocalhost=no
        		echo add $DISPLAY $proto $cookie
        	fi | xauth -q -
        fi

    이 파일이 존재하지 않는 경우는 /etc/ssh/sshrc 하지만 실행됩니다. 이것도 존재하지 않는 경우는, xauth 가 쿠키를 추가하기 위해서 사용됩니다.

    이 파일은, 그 유저에게만 기입해 가능하게 해 두어 주세요. 누구라도 읽을 수 있도록(듯이) 해 둘 필요는 없습니다.

/etc/ssh/sshrc
    $HOME/.ssh/rc (을)를 닮아 있습니다. 이것은 그 머신 전체에 걸쳐서 로그인시의 초기화를 지정하는데 사용됩니다. 이것은 root 마셔 기입해 가능하게 해 두어, 누구로부터도 읽을 수 있도록(듯이) 해 두어야 합니다.

저자
OpenSSH 는 Tatu Ylonen 에 의한, 프리인 오리지날판 ssh 1.2. 12 릴리스로부터 파생한 것입니다. Aaron Campbell, Bob Beck, Markus Friedl, Niels Provos, Theo de Raadt 및 Dug Song 가 많은 버그를 제거해, 새로운 기능을 다시 추가해 OpenSSH 를 만들었습니다. SSH 프로토콜 버젼 1.5 및 2.0 의 서포트는 Markus Friedl 의 공헌에 의하는 것입니다. Niels Provos 및 Markus Friedl 가 특권 분리의 서포트에 공헌했습니다.

일본어 번역
니이야마 유스케 (yusuke at cs . nyu . edu) 2002/9/28 (for 3.5p1)

당메뉴얼 페이지는 씨의 호의에 의해 FreeBSD 일본어 메뉴얼에 수록하고 있습니다. 번역에 대한 의견, 지적이 있으면 니이야마씨 (yusuke at cs . nyu . edu), 및 FreeBSD jpman 프로젝트 <man-jp@jp.FreeBSD.org> 까지 전송해 주세요.

관련 항목
scp(1), sftp(1), ssh(1), ssh-add(1), ssh-agent(1), ssh-keygen(1), login.conf(5), moduli(5), sshd_config(5), sftp-server(8) T. Ylonen, T. Kivinen, M. Saarinen, T. Rinne, S. Lehtinen, SSH Protocol Architecture, draft-ietf-secsh-architecture-12.txt, January 2002, work in progress material. M. Friedl, N. Provos, W. A. Simpson, Diffie-Hellman Group Exchange for the SSH Transport Layer Protocol, draft-ietf-secsh-dh-group-exchange-02.txt, January 2002, work in progress material.