리눅스 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

  • [Linux] ip 명령어 : 네트워크 인터페이스 및 설정 관리

    ip 명령어는 리눅스에서 네트워크를 관리할 때 사용되는 주요 도구로, 다양한 네트워크 작업을 수행할 수 있습니다. ip 명령어는 네트워크 인터페이스의 상태를 확인하거나 활성화 및 비활성화 할 수 있으며, IP 주소를 확인하거나 수동으로 추가 및 삭제하는 작업도 가능합니다. 또한 라우팅 테이블을 조회하고 경로를 추가하거나 제거하는 등의 라우팅 관리, ARP 테이블 확인 및 수정, 터널링 설정…

  • 리눅스 which whereis locate: 3가지 위치(경로) 확인 명령어

    리눅스 which와 whereis 명령어 명령어의 위치를 알 수 있는 명령어는 find 명령어를 이용해서 파일을 찾을 수 있지만 find 명령어는 시간이 소요되는 단점도 존재합니다. locate 명령어는 파일명을 빠르게 검색할 때 사용할 수 있습니다. 리눅스 기본 명령어 3가지에 대해 알아 보겠습니다. 목차✅ 리눅스 SSH 정의✅ 리눅스 SSH 설치하기1. 설치 확인2. 설치하기3. 포트 및 특정 IP에서만…

  • 리눅스 Logrotate 개념과 설정

    리눅스 Logrotate는 “로그를 회전하다.”라는 뜻에서 알 수 있듯이 로그와 Rotate(회전하다[동사])의 합성어입니다. 리눅스 설치 시 기본으로 설치되어 있습니다. 로테이션(Rotation)은 사람을 일정한 순서에 따라 교대하는 일, 야구 경기에서 선발 투수를 차례로 기용하는 일 등의 예에서 볼 수 있듯이 반복과 교대의 개념을 가지고 있습니다. 리눅스에서 로그로테이션(Logrotation) > 로그 회전이라는 명사로도 언급됩니다. Logrotate가 설치되어 있지 않다면 명령어를…

  • HTTP 상태 코드 표 [100~500] 정리

    HTTP 상태 코드는 운영 중인 서버의 오류를 확인하는 데 매우 중요한 지표로 활용됩니다. HTTP(Hypertext Transfer Protocol)란 웹 서버와 웹 클라이언트 사이에 데이터를 주고 받기 위해 사용되는 프로토콜 중 하나이며, TCP/IP 프로토콜 위에서 동작합니다. HTTP는 HTML, XML과 같은 하이퍼텍스트(Hypertext)만 전송하는 것이 아닌 이미지, 동영상, JavaScript 등의 다양한 파일을 데이터로 전송할 수 있습니다. 목차✅ 리눅스…

  • [Linux] mod_ssl.so Apache 모듈 설치하기

    아파치를 사용하는 리눅스 서버에 SSL을 적용하려고 할 때 아피치 모듈 중 mod_ssl.so가 설치되어 있어야 합니다. 목차✅ 리눅스 SSH 정의✅ 리눅스 SSH 설치하기1. 설치 확인2. 설치하기3. 포트 및 특정 IP에서만 접속 설정✅ mod_ssl.so 설치 ✅ 서버 방화벽 포트 443 열어두기 SSL 포트인 443 포트가 방화벽에서 열려있는 상태로 활성화 되어 있어야 합니다.

  • 스왑 메모리(Swap Memory) 설정: 파티션&파일 2가지 방식 | swapon, mkswap 명령어

    리눅스 스왑 메모리(Swap Memory)는 실제 디스크 공간을 메모리처럼 사용하는 개념이기 때문에 물리 메모리인 RAM보다 처리 속도가 느리지만 물리 메모리가 가득 찬 경우를 대비해 디스크 공간에서 할당 된 스왑 메모리를 생성해서 관리할 수 있어 한정된 리소스를 효율적으로 사용할 수 있습니다. 목차✅ 리눅스 SSH 정의✅ 리눅스 SSH 설치하기1. 설치 확인2. 설치하기3. 포트 및 특정 IP에서만…

답글 남기기

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

Prove your humanity: 5   +   1   =