openssh
ssh
sshd
dropbear
sshd
를 실행하려면, 설정 파일과 호스트 키가 필요하다./etc/ssh
설정 디렉토리에 이런 설정들을 유지한다.sshd
패키지를 설치하면 적절하게 모든 것이 설정된다./etc/ssh
sshd_config
ssh_config
sshd
서버가 시작되지는 않는다.$ chkconfig sshd on
$ service sshd start
sshd
스타트 업 때, 호스트 키 파일이 없으면 호스트 키 파일을 생성한다.sshd
는 자신의 PID를 /var/run/sshd.pid
에 기록한다./etc/ssh/sshd_config
/etc/ssh/
sshd_config
!Port 22
#Protocol 2,1
#ListenAddress 0.0.0.0
#ListenAddress ::
HostKey /etc/ssh/ssh_host_key
HostKey /etc/ssh/ssh_host_rsa_key
HostKey /etc/ssh/ssh_host_dsa_key
Column | Description |
---|---|
HostKey file | file 을 호스트 키로써 사용한다. (호스트 키들이 간단하게 묘사된다.) |
LogLevel level | syslog 레벨 level 을 통해 메시지를 기록한다. |
PermitRootLogin value | 만약 value가 yes로 설정되어 있다면, 슈퍼 사용자가 SSH로 로그인하는 것을 허용한다. 반대로 로그인을 막으려면 value 를 no 로 설정한다. |
SyslogFacility name | syslog 퍼실리티 name 으로 메시지를 기록한다. |
X11Forwarding value | value가 yes 로 설정된 경우 X 윈도우 시스템 클라이언트 터널링을 허용한다. |
XAuthLocation path | xauth 를 위한 경로를 제공한다. X11 터널링은 이 경로가 없으면 동작하지 않을 것이다. 만약 xauth 가 /usr/bin 에 없다면, xauth 에 대한 전체 경로명으로 path 를 설정한다. |
파일 명 | 설명 |
---|---|
ssh_host_rsa_key | Private RSA key (ver 2.) |
ssh_host_rsa_key.pub | Public RSA key (ver 2.) |
ssh_host_dsa_key | Private DSA key (ver 2.) |
ssh_host_dsa_key.pub | Public DSA key (ver 2.) |
ssh_host_key | Private RSA key (ver 1.) |
ssh_host_key.pub | Public RSA key (ver 1.) |
$ ssh-keygen -t rsa -N '' -f /etc/ssh/ssh_host_rsa_key
$ ssh-keygen -t dsa -N '' -f /etc/ssh/ssh_host_dsa_key
$ ssh-keygen -t rsa1 -N '' -f /etc/ssh/ssh_host_key
known_hosts
파일은 반드시 모든 신뢰할 수 있는 클라이언트들에 대한 공개 호스트 키들 포함Get-WindowsCapability -Online | ? Name -like 'OpenSSH*' # 입력
# This should return the following output:
Name : OpenSSH.Client~~~~0.0.1.0
State : NotPresent
Name : OpenSSH.Server~~~~0.0.1.0
State : NotPresent
# 그런 다음 서버 및/또는 클라이언트 기능을 설치합니다.
# Install the OpenSSH Client
Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0
# Install the OpenSSH Server
Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0
# Both of these should return the following output:
Path :
Online : True
RestartNeeded : False
C:\Users\UserID\.ssh
id_rsa, id_rsa.pub
존재 유무 확인ssh-keygen -t rsa -b 4096
# 걍 엔터 연타
C:\Users\UserID\.ssh\id_rsa, id_rsa.pub 생성
$HOME/.ssh/id_rsa, id_rsa.pub
공개키 존재 유무 체크$ ls $HOME/.ssh
# 폴더도 없으면.. OpenSSH 관한거 다 설치
$ mkdir -p ~/.ssh
$ chmod 700(rwx------) ~/.ssh
$ ssh-keygen -t rsa -b 4096
# 엔터 연타
$ $HOME/.ssh/id_rsa{,.pub} 로 생성됨
authorized_keys
에 추가해야한다.(remote server) $ sudo apt install openssh-server
authorized_keys
)(remote server) $ mkdir -p ~/.ssh
(remote server) $ chmod 700 ~/.ssh
(remote server) $ cat '전송 받은 id_rsa.pub' >> ~/.ssh/authorized_keys
(remote server) $ chmod 600(rw-------) ~/.ssh/authorized_keys
(remote server) $ rm '전송 받은 id_rsa.pub'
known_hosts
)$HOME/.ssh/known_hosts
로 관리된다..ssh/config
).ssh/config
이다.# ==== $HOME/.ssh/config ===== #
Host MyRemoteHostServer
HostName 127.58.27.12 # remote host ip
User pllpokko # remote host user
Port 8888 # fortforward 외부 포트 8888->22
WARNING: ~~ CHANGED!
WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!
# My Local computer(client)
$ ssh-keygen -R [server IP]
# 혹은
$ $HOME/.ssh/known_hosts에서 server IP 제거
/etc/hosts.allow
에 내 IP 등록 시켜야함.ssh/known_hosts
에서 충돌이 난다..ssh/authorized_keys
에는 내 id_rsa.pub
가 들어가 있으니 되는 것)# client
$ ssh-keygen -f $HOME/.ssh/known_hosts -R [server IP]