리눅스 SSH 정의 및 기본 설정

✅ 리눅스 SSH 정의

SSH(Secure Shell)란 원격 호스트 컴퓨터로 접속하기 위해 사용되는 인터넷 프로토콜입니다. 보안 쉘은 기존 유닉스 시스템의 텔넷은 암호화가 이루어지지 않아 계정 정보가 해킹에 노출되는 위협이 있었기 때문에, 1995년 암호화 기능을 추가해서 나온 프로토콜입니다.

리눅스 SSH는 암호화 기법을 사용하며, 쉘로 원격 접속 후 리눅스 커멘드 라인에서 작업을 하게 되며, 기본 포트 번호는 22번입니다.

  • SSH 특징
  • 서버에 접속할 때 비밀번호 대신 key를 제출하는 방식.
  • 보안 접속을 통한 rsh, rcp, rlogin, rexec, telnet, ftp 등을 제공.
리눅스 SSH 정의 및 기본 설정

✅ 리눅스 SSH 설치(없는 경우)

ssh 프로토콜은 대부분의 리눅스에서 설치가 되어 있습니다. Minimal과 같은 버전으로 리눅스가 설치되어 OpenSSH가 없는 경우 순차적으로 설치 진행 및 테스트를 할 수 있습니다.

1. 설치 확인

[rpm -qa | grep ssh] 또는 [dnf list installed | grep ssh]를 입력해서 설치 여부를 확인합니다.(CentOS는 dnf 대신 yum을 입력합니다.)

~]# dnf  list installed | grep ssh
libssh.x86_64                         0.9.6-3.el9                 @anaconda        
libssh-config.noarch                  0.9.6-3.el9                 @anaconda        
openssh.x86_64                        8.7p1-24.el9_1              @anaconda        
openssh-clients.x86_64                8.7p1-24.el9_1              @anaconda        
openssh-server.x86_64                 8.7p1-24.el9_1              @anaconda  

2. 설치하기

설치되어 있지 않은 경우 yum 또는 dnf 명령어를 이용해서 설치를 진행합니다.

dnf -y install openssh-server
#서비스 시작 
systemctl start sshd 
#서비스 중지
systemctl stop sshd
#재부팅 시 자동 실행
systemctl enable sshd
#재부팅 시 자동실행 취소
systemctl disable sshd
#서비스 상태 확인
~]# systemctl status sshd 
sshd.service - OpenSSH server daemon
     Loaded: loaded (/usr/lib/systemd/system/sshd.service; enabled; vendor preset: enabled)
     Active: active (running) since Tue 2024-01-02 11:06:31 UTC; 4 days ago
       Docs: man:sshd(8)
             man:sshd_config(5)
   Main PID: 1088 (sshd)
      Tasks: 1 (limit: 4359)
     Memory: 6.0M
        CPU: 2min 35.837s
     CGroup: /system.slice/sshd.service
             └─1088 "sshd: /usr/sbin/sshd -D [listener] 0 of 10-100 startups"

Jan 07 08:42:43 instance-20231231-2010 sshd[136290]: Connection closed by invalid user confluence 159.89.179.126 port 48068 [preauth]
Jan 07 08:43:46 instance-20231231-2010 sshd[136307]: Connection closed by 167.94.146.55 port 58556 [preauth]
Jan 07 08:44:19 instance-20231231-2010 sshd[136311]: Invalid user db2as from 170.64.194.242 port 54314
### 생략 ###

3. 포트 및 특정 IP에서만 접속 설정

설정은 /etc/ssh/sshd_config에서 할 수 있습니다. 기본 설정 값을 확인할 수 있으며,

포트 번호 변경이 필요할 경우 21번 째 라인의 #을 푼 다음에 원하는 포트 번호로 변경해 줍니다. 23번 째 라인에서 특정 IP에서만 접속 되게끔 설정할 수 있습니다.

~]# vi /etc/ssh/sshd_config

18 # SELinux about this change.
     19 # semanage port -a -t ssh_port_t -p tcp #PORTNUMBER
     20 #
     21 Port 22 << 원하는 포트 번호로 변경 
     22 #AddressFamily any
     23 ListenAddress 0.0.0.0  << 특정 IP로 접속 설정
     24 #ListenAddress ::
     25 
     26 #HostKey /etc/ssh/ssh_host_rsa_key
     27 #HostKey /etc/ssh/ssh_host_ecdsa_key
     28 #HostKey /etc/ssh/ssh_host_ed25519_key
     29 
     30 # Ciphers and keying
     31 #RekeyLimit default none
     32 
     33 # Logging
     34 #SyslogFacility AUTH
     35 #LogLevel INFO
     36 
     37 # Authentication:
     38 
     39 #LoginGraceTime 2m
     40 PermitRootLogin prohibit-password
root 계정의 접속 거부로 변경 PermitRootLogin yes로 설정되어 있는 경우 PermitRootLogin no  변경해서 접속을 차단할  있습니다. 참고로  설정은 오라클 rocky Linux 설정으로 되어 있어 키파일로 접속되게 설정이 되어 있는 상태이기 때문에 prohibit-password로 되어 있는 것입니다. 

마지막으로 추가로 리눅스 iptables 방화벽이나 Firewalld 방화벽에서 관련 포트를 열어 준 후에 netstat 명령어로 정상적으로 접속이 가능한지 확인합니다. 리눅스 SSH 기본 개념과 설치와 기본 설정 방법에 대해 알아 봤습니다.

Similar Posts

  • 셸 스크립트란? 셸과 셸 프롬프트&bash shell

    목차✅ 리눅스 SSH 정의✅ 리눅스 SSH 설치(없는 경우)1. 설치 확인2. 설치하기3. 포트 및 특정 IP에서만 접속 설정 ▥ 셸 스크립트란(shell script)? 1. 셸이란? 키보드에 입력한 명령어를 운영체제에 전달해서 전달한 명령어를 실행하게 하는 프로그램이다. 2. 셸 프롬프트 셸 프롬프트는 셸이 입력 가능한 상태일 때에만 나타난다. 달러 ($)는 일반 유저일 때, 해쉬 표시(#)는 터미널 세션이…

  • ps 명령어(프로세스 명령어)

    ps 명령어는 현재 실행 중인 프로세스를 출력하는 명령어입니다. 목차✅ 리눅스 SSH 정의✅ 리눅스 SSH 설치(없는 경우)1. 설치 확인2. 설치하기3. 포트 및 특정 IP에서만 접속 설정1. ps 명령어 옵션 ps에서 주로 사용되는 명령어입니다. 기본 사용 옵션은 아래와 같습니다. 2. ps -ef 명령어 ps -ef 명령어는 모든 프로세스를 포멧 리스트로 출력해 줍니다. 2.1 출력 필드…

  • Rocky Linux 설치 (9.5 Ver Minimal) | 이더넷 설정

    VirtualBox로 Rocky Linux 설치(9.5 Ver)를 진행해 보겠습니다. Rocky Linux 설치를 위해 ISO 파일을 다운로드 받은 후 가상 머신을 생성합니다. EFI 활성화를 체크 후 설치 진행을 하겠습니다. 목차✅ 리눅스 SSH 정의✅ 리눅스 SSH 설치(없는 경우)1. 설치 확인2. 설치하기3. 포트 및 특정 IP에서만 접속 설정 ✅ Rocky Linux 설치 Rocky Linux 설치 시작 화면에서 install을…

  • 리눅스 커널(Kernel)이란? | 커널 버전

    리눅스 커널과 커널은 같은 뜻을 가지고 있습니다. 커널을 말할 때 리눅스 커널을 이야기 하는 것입니다. 핵심(&알맹이)이라는 뜻을 가진 커널(Kernel)은 내부 계층에 속하며, Shell 명령과 하드웨어를 연결해 주는 역할을 합니다. 목차✅ 리눅스 SSH 정의✅ 리눅스 SSH 설치(없는 경우)1. 설치 확인2. 설치하기3. 포트 및 특정 IP에서만 접속 설정리눅스 커널(Kernel)의 개념 컴퓨터는 크게 물리적으로 만질 수…

  • Linux snapd | Rocky Linux에서 snapd 설치

    스냅크래프트(Snapcraft) 또는 스냅(Snap)은 캐노니컬(Canonical)이 시작한 Ubuntu 스마트폰 운영 체제를 위한 소프트웨어 배포 및 패키지 도구로서 개발되었으며, 패키지 관리 시스템이다. 스냅(snap)이라고 불리는 패키지와 snapd를 사용하는 도구는 업스트림 소프트웨어 패키징을 간편화하여 다양한 리눅스 배포판에서 사용할 수 있도록 도와준다. Linux snapd은 앱 패키지로 데스크톱, 클라우드, IoT에서 사용 가능하며, 설치가 용이하고 안전하며 다양한 플랫폼에서 사용할 수 있으며…

  • 리눅스 파일 시스템(File System)과 스토리지

    리눅스 파일 시스템File System은 모든 파일 및 디렉토리를 큰 트리 구조 하나로 관리합니다. 리눅스는 Ext(Extended File System)를 사용합니다. OS는 파일 스토리지에 있는 파일을 효율적으로 관리하기 위해 파일 시스템을 구축하게 됩니다. 목차✅ 리눅스 SSH 정의✅ 리눅스 SSH 설치(없는 경우)1. 설치 확인2. 설치하기3. 포트 및 특정 IP에서만 접속 설정✅ 대표적인 리눅스 파일 시스템 종류 저널링 시스템은…

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

Prove your humanity: 4   +   1   =