Ssh 접속 확인 - Ssh jeobsog hwag-in

리눅스에서는 SSH 서버로그인한 기록을 대략적으로 파악할 수 있습니다. 주로 리눅스 로그 디렉토리인 /var/log에서 auth.log 파일에 기록됩니다. 파일명은 일부 리눅스 배포판에 따라 다를 수 있습니다.

RedHat 계열 (RHEL, CentOS, Fedora)

/var/log/messages

Debian 계열 (Ubuntu)

/var/log/auth.log

한 명의 사용자(user1)가 myServer라는 호스트에 1회 로그인 했을 때 다음과 같이 2-3줄의 텍스트가 기록됩니다.

  • 첫번째 줄: user1로 접속하려는 192.168.1.1 사용자가 암호 입력에 성공함
  • 2-3번째 줄: SSHD 서비스에 의해 (세션 ID 189로) user1에 대한 세션이 열림
Jun 17 11:08:18 myServer sshd[18195]: Accepted password for user1 from 192.168.1.123 port 57512 ssh2 Jun 17 11:08:18 myServer sshd[18195]: pam_unix(sshd:session): session opened for user user1 by (uid=0) Jun 17 11:08:18 myServer systemd-logind[784]: New session 189 of user user1.

반대로 로그아웃하거나 세션을 종료하게 될 때도 해당 파일에 기록됩니다. 기록되는 내용은 약 3-4줄입니다.

  • 1-2번째 줄: user1의 연결이 Disconnected 상태로 변경됨
  • 3-4번째 줄: user1 사용자의 세션이 닫히고 로그아웃 처리됨
Jun 17 11:14:41 myServer sshd[18634]: error: Received disconnect from 192.168.1.123 port 57552:0: Jun 17 11:14:41 myServer sshd[18634]: Disconnected from user user1 192.168.1.123 port 57552 Jun 17 11:14:41 myServer sshd[18565]: pam_unix(sshd:session): session closed for user user1 Jun 17 11:14:41 myServer systemd-logind[784]: Session 193 logged out. Waiting for processes to exit.

로그인 사용자를 추적하기 위해 한 줄로만 나타내고 싶은 경우 다음과 같이 tail 명령어와 같이 사용할 수도 있습니다.

# tail -f /var/log/auth.log | grep "Accepted password"

리눅스 환경에서는 외부에서 작업하기 위해 OpenSSH 서버를 주로 운영합니다. 따라서 이 서버에 접속하려면 SSH 클라이언트가 필요합니다. 윈도우에서는 SSH 클라이언트로 Putty가 많이 사용되었습니다.

현재 윈도우 10에서는 선택적 기능으로 OpenSSH 클라이언트를 바로 사용할 수 있습니다. 또한 Windows Terminal이라는 마이크로소프트의 새로운 터미널 프로그램이 등장하면서, Windows Terminal + OpenSSH 클라이언트 조합만으로 다른 프로그램 없이도 쾌적하게 SSH 서버에 원격 접속하고 셸 작업을 하는 것이 가능합니다.

이 글에서는 Windows Terminal + OpenSSH 조합으로 SSH 서버에 접속하는 방법을 소개합니다.

  • Windows Terminal 및 OpenSSH 클라이언트 준비
  • OpenSSH 클라이언트 설치 확인하는 방법
  • SSH 명령어로 리눅스 서버 접속하는 방법
  • 부록: 윈도우 OpenSSH 서버에 접속하는 방법
  • 부록: OpenSSH Agent 실행하는 방법

Windows Terminal 및 OpenSSH 클라이언트 준비

Windows Terminal은 윈도우 10의 마이크로소프트 스토어에서 간단히 설치할 수 있습니다.

  • Windows Terminal - Microsoft Store ko-KR

Windows Terminal 설치 및 초기 셋업에 대해서는 다음 글에서 더 자세히 소개합니다.

  • 관련 글: Windows Terminal(PowerShell, WSL2 등) 설치하는 방법

Windows Terminal 설치가 어렵다면, PowerShell을 사용해도 무방합니다.

다음으로 Windows + S 키를 입력하고 Windows Terminal을 검색해서 관리자 권한으로 실행해주세요. 검색 결과에서 오른쪽 버튼을 누르면 나오는 문맥 메뉴 최 상단의 ’관리자 권한으로 실행’을 선택하면 됩니다.

  • 관련 글: 관리자 모드로 명령 프롬프트, Windows Terminal 등 실행하는 방법

다음 명령어를 실행합니다. 윈도우 10의 선택적 기능 OpenSSH 클라이언트를 활성화합니다.

$ Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0

윈도우 셸에 익숙하지 않다면, GUI로도 OpenSSH Client를 활성화할 수 있습니다.

  1. Windows 설정(제어판)을 열고 앱을 선택합니다.
  2. 사이드바의 앱 및 기능(기본값)을 선택하고, 선택적 기능 관리를 클릭합니다.
  3. 상단의 기능 추가 버튼을 클릭합니다.
  4. 검색창이 나타나면 OpenSSH를 검색하고 OpenSSH 클라이언트를 선택 및 설치합니다.

SSH로 리눅스 서버에 접속할 준비를 마쳤습니다!

OpenSSH 클라이언트 설치 확인하는 방법

이제 ssh -V를 입력해서, SSH 클라이언트 버전을 확인해봅니다.

$ ssh -V OpenSSH_for_Windows_8.1p1, LibreSSL 3.0.2

정상적으로 설치되었다면 위와 같이 SSH 클라이언트의 버전이 나타납니다. 만약 설치가 되어있지 않다면 명령어가 없다는 에러가 나타납니다.

기본적으로 OpenSSH 클라이언트는 C:\Windows\System32\OpenSSH\에 설치되니 참고해주세요.

$ dir C:\Windows\System32\OpenSSH\ 디렉터리: C:\Windows\System32\OpenSSH Mode LastWriteTime Length Name ---- ------------- ------ ---- -a---- 2021-06-13 오후 3:04 396211 moduli -a---- 2021-05-20 오후 4:52 307712 scp.exe -a---- 2021-06-13 오후 3:04 307200 sftp-server.exe -a---- 2021-05-20 오후 4:52 374272 sftp.exe -a---- 2021-05-20 오후 4:52 481280 ssh-add.exe -a---- 2021-05-20 오후 4:52 382976 ssh-agent.exe -a---- 2021-05-20 오후 4:52 662016 ssh-keygen.exe -a---- 2021-05-20 오후 4:52 557568 ssh-keyscan.exe -a---- 2021-06-13 오후 3:04 151552 ssh-shellhost.exe -a---- 2021-05-20 오후 4:52 946176 ssh.exe -a---- 2021-06-13 오후 3:04 1008128 sshd.exe -a---- 2021-06-13 오후 3:04 2297 sshd_config_default

SSH 명령어로 리눅스 서버 접속하는 방법

이제 SSH 명령어로 리눅스 서버에 접속해보겠습니다. 앞서 OpenSSH 클라이언트 설치를 위해 Windows Terminal을 관리자 모드로 실행했습니다만, 더 이상 관리자 모드가 필요하지는 않습니다. 터미널 종료 후 다시 Windows + S에서 Windows Terminal을 검색해서 실행해주세요.

OpenSSH로 리눅스 서버에 접속하는 기본 명령어는 다음과 같습니다.

$ ssh [USER]@[HOSTNAME] -p [PORT]

대괄호 부분은 다음과 같이 변경해주세요

  • [USER]: 접속할 리눅스 사용자를 입력합니다.
  • [HOSTNAME]: 네트워크 상 접근 가능한 호스트네임이나 IP를 지정합니다.
  • [PORT]: 리눅스 서버의 SSH 포트. 22번을 사용한다면 -p 옵션을 생략해도 됩니다.

리눅스 서버 주소의 IP 주소가 192.0.1.127이고 22번 포트를 사용하는 경우 다음과 같이 접속할 수 있습니다.

$ ssh -p 22

명령어를 실행하면 이 호스트에 정말로 접속할지 물어봅니다. yes를 입력하면 알려진 호스트(known hosts) 목록에 추가하고 접속을 진행합니다.

$ ssh -p 22 The authenticity of host 'linux (192.0.1.27)' can't be established. ECDSA key fingerprint is SHA256:vjHkxv736QyXeZ1GlinuxowhelloN6JworldDRvZsS9w. Are you sure you want to continue connecting (yes/no/[fingerprint])? yes

별도의 SSH 키 셋업이 되어있지 않다면 Password를 물어봅니다.

Warning: Permanently added 'linux,192.0.1.27' (ECDSA) to the list of known hosts. Password:

접속하려는 계정의 패스워드를 입력합니다. 리눅스 셸이 뜨면 정상입니다.

Welcome to Ubuntu 18.04.5 LTS (GNU/Linux 4.15.0-132-generic x86_64) * Documentation: //help.ubuntu.com * Management: //landscape.canonical.com * Support: //ubuntu.com/advantage System information as of Wed Aug 4 01:14:06 UTC 2021 ... lainyzine@linux:~$

리눅스(Ubuntu)에 접속되어있는지 확인하기 위해 lsb-release 파일을 출력해봅니다.

lainyzine@linux:~$ cat /etc/lsb-release DISTRIB_ID=Ubuntu DISTRIB_RELEASE=18.04 DISTRIB_CODENAME=bionic DISTRIB_DESCRIPTION="Ubuntu 18.04.5 LTS"

현재 작업 환경이 우분투 서버인 것을 확인할 수 있습니다!

  • 관련 글: 리눅스 배포판 및 버전 확인하는 방법

부록: 윈도우 OpenSSH 서버에 접속하는 방법

윈도우에서도 OpenSSH 서버를 실행하고 외부에서 셸로 접속하는 것이 가능합니다. 따라서 앞서 설치한 OpenSSH 클라이언트로 다른 윈도우에 SSH 접속하는 것이 가능합니다. 이에 대해서는 다음 글에서 자세히 소개합니다.

  • 관련 글: <Windows 10> OpenSSH 서버 실행하고 SSH로 접속하는 방법

부록: OpenSSH Agent 실행하는 방법

리눅스나 맥에서 OpenSSH 클라이언트를 사용해보았다면 SSH 키 관리를 위한 OpenSSH Agent가 실행되는 것을 알고 있을 것입니다. Windows 10에서는 기본적으로 OpenSSH Agent가 비활성화되어있습니다. 이를 활성화해보겠습니다(SSH Agent와 자세한 사용법에 대해서는 별도로 소개하도록 하겠습니다).

먼저 Windows + S 키를 입력서 서비스를 검색해 열어줍니다.

OpenSSH Authentication Agent를 찾아 오른쪽 버튼 -> 속성을 열어줍니다.

일반 탭에서 시작 유형을 자동으로 변경합니다.

세 번째 복구 탭으로 이동합니다. 첫째 실패, 둘째 실패, 후속 실패 옵션을 전부 ’서비스 다시 시작’으로 변경하고 확인을 클릭합니다.

다시 OpenSSH Authentication Agent 항목에서 오른쪽 버튼을 눌러 시작을 클릭해줍니다.

이제 SSH Agent가 활성화되었습니다!

Toplist

최신 우편물

태그