Post

홈서버 구축 대작전 2. OpenSsh 설정하기

홈서버 구축 대작전 2. OpenSsh 설정하기

원격으로 접속 해서 사용할수 있게 Open SSH를 설정하자

Open SSH 설치

설치

1
2
dnf install openssh-server  # openssh 설치
which sshd # 설치 확인
1
2
3
firewall-cmd --zone=public --list-ports  # 방화벽 열린 포트 확인
firewall-cmd --zone=public --add-port=22/tcp --permanent  # 22 포트 열기
firewall-cmd --reload  # firewalld 다시 불러오기 (변경 사항 적용)
1
2
firewall-cmd --zone=public --list-ports  # 현재 열린 포트 확인
firewall-cmd --zone=public --list-services  # 열린 서비스 확인
  • –zone=public: 방화벽 규칙이 적용될 zone 지정, 외부 인터페이스와 연결된 영역은 보통 public
  • –permanent: 옵션 영구 저장, x시 firewalld 재시작시 적용 안됨

설정

sys_wide_ssh_config.png user_specific_ssh_config.png

정말 많은 설정 파일이 있는데 sshd의 보안을 강화하기 위해 sshd_config를 수정하자

1
sudo nvim /etc/ssh/sshd_config

파일 자체가 직관적이고 궁금한게 있으면 맨 위에 있는 man page의 안내를 따르자 https://linux.die.net/man/5/sshd_config

ssd_config.png

위 부분만 주석을 제거 하고 다음과 같이 설정 해주자

  • prohibit-password: key 파일을 이용해야만 root 로그인 가능 보안을 위해 꼭 설정하자

RHEL 9에서 위 config파일을 바꿔도 적용이 안되는 경우가 있는데 다음과 같이 해결한다.

1
echo 'PermitRootLogin yes' >> /etc/ssh/sshd_config.d/01-permitrootlogin.conf

https://docs.redhat.com/ko/documentation/red_hat_ceph_storage/8/html/installation_guide/enabling-ssh-log-in-as-root-user-on-rhel-9_install#enabling-ssh-log-in-as-root-user-on-rhel-9_install

설정을 완료했다면 꼭 적용해주자

1
2
3
4
5
systemctl start sshd
# 혹은
systemctl reload sshd

systemctl status sshd  #  정상 가동 중인지 확인

잘 되면 좋겠지만 Unit sshd.service could not be found 오류가 생길수 있다.
openssh가 시스템 서비스(init)로 등록되지 않아서 그렇다! 수동으로 등록해주자!!
**시스템에서 daemon을 어떻게 시작하고, 중지하고, 재시작 할지 설정을 해주는 단순 txt 파일

1
sudo nvim /etc/systemd/system/sshd.service
[Unit]
Description=OpenSSH server daemon  # 서비스의 설명을 제공하는 항목으로, 시스템 관리자에게 서비스가 무엇인지 알려준다
After=network.target               # 이 서비스가 네트워크 서비스가 시작된 후에 시작되도록 설정(네트워크가 필요하기 때문)

[Service]
ExecStart=/usr/local/sbin/sshd -D  # 서비스가 시작될 때 실행할 명령을 지정. 여기서는 OpenSSH 데몬을 포그라운드 모드(-D)로 실행
ExecReload=/bin/kill -HUP $MAINPID # 서비스를 다시 로드할 때 실행할 명령을 지정. 여기서는 메인 프로세스에 HUP 신호를 보내서 설정을 다시 로드
KillMode=process                   # 서비스가 중지될 때 개별 프로세스를 종료.
Restart=on-failure                 # 서비스가 실패했을 때 자동으로 재시작하도록 설정.
RestartSec=42s                     # 서비스가 실패한 후 재시작하기 전에 대기할 시간을 초 단위로 지정. (42초 대기)

[Install]
WantedBy=multi-user.target         # 이 서비스가 다중 사용자 모드에서 실행되도록 지정. multi-user.target는 시스템이 기본적으로 부팅되는 목표

sshd.service 파일 출저: https://hmw0908.tistory.com/116

1
2
3
4
5
sudo system daemon-reload

sudo systemctl start sshd
sudo systemctl status sshd
sudo systemctl enable sshd #부팅될 때 자동으로 SSH 서버가 시작되도록 설정

이러면 sshd Setting은 끝! 다음엔 ssh-keygen으로 공개, 개인키를 설정하자

This post is licensed under CC BY 4.0 by the author.