본문 바로가기

CentOS/Study

[Study41]SSH 를 활용한 Linux 원격 접속

반응형

ssh

Secure Shell (SSH)은(는) 보안되지 않은 네트워크를 통해 원격 컴퓨터에 안전하게 연결할 수 있는 프로토콜입니다. 이것은 컴퓨터 네트워킹과 사이버 보안 분야에서 널리 사용됩니다.

ssh 명령을 사용할 때 여러 옵션이 있습니다. 예를 들어, IP 주소나 사용자 이름을 지정하여 로그인할 수 있습니다. 다음은 몇 가지 예시입니다:

# ssh 192.168.10.252
# ssh root@192.168.10.252
# ssh fedora@192.168.10.252

또한 ssh 명령 뒤에 원격 머신에서 명령을 실행할 수 있습니다. 예를 들어:

# ssh 192.168.10.252 CMD

마지막으로 IP 주소 또는 호스트 이름 뒤에 특정 명령을 지정하여 원격 머신에서 해당 명령을 실행할 수도 있습니다.

예를 들어:

# ssh 192.168.10.252 ls /test

원격 시스템을 안전하고 효과적으로 관리하기 위해서는 ssh 명령과 여러 옵션을 이해하는 것이 중요합니다.

 

telnet/ssh 명령어 실습

이번 예제에서는 telnet/ssh 명령어를 실습해 봅니다.

우선, 아래와 같이 telnet을 사용하여 192.168.10.252에 연결합니다.

# telnet 192.168.10.252

연결이 되었다면, root 사용자로 로그인합니다.

root 사용자로 로그인

로그인이 완료되었다면, 다음과 같이 호스트 이름과 사용자 ID를 확인합니다.

# hostname
# id

확인이 끝났으면, 다시 로그아웃합니다.

# exit

이번에는 .ssh 디렉토리로 이동하여 known_hosts 파일을 지웁니다.

# cd ~/.ssh
# ls
# > known_hosts

다음으로, ssh를 사용하여 192.168.10.252에 연결합니다.

# ssh 192.168.10.252

연결을 시도하면, 아래와 같이 호스트의 인증 요청이 표시됩니다.

The authenticity of host '192.168.10.252 (192.168.10.252)' can not be established.
ECDSA key fingerprint is SHA256:VupU+fz6cK1zkTDfQxGuWW4YIt+aTy5yXNvxsVtHwz4.
ECDSA key fingerprint is MD5:27:8e:59:e4:ac:31:a7:4d:c6:92:88:bc:74:5c:45:c7.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.10.252' (ECDSA) to the list of known hosts.
root@192.168.10.252's password:
Last login: Tue Mar 24 12:01:34 2020 from ::ffff:192.168.10.200
[root@server2 ~]#

비밀번호를 입력하여 로그인하면, ECDSA key fingerprint를 확인할 수 있으며, 호스트 이름과 사용자 ID를 다시 한번 확인합니다.

# hostname
# id

확인이 끝났으면, 다시 로그아웃합니다.

# exit

호스트 이름, 사용자 ID를 확인하고 로그아웃합니다.

 

ssh/scp 명령어를 통한 파일 전송

파일 전송이란 데이터를 한 컴퓨터에서 다른 컴퓨터로 이동시키는 것을 말합니다. ssh/scp 명령어를 사용하면 안전하고 빠르게 파일 전송이 가능합니다.

이번 예제에서는 ssh/scp 명령어를 사용하여 파일을 전송하는 방법을 살펴보겠습니다.

먼저, 다음과 같이 명령어를 입력하여 파일을 준비합니다.

# cd /test
# rm -rf /test/*

# cp /usr/bin/* /test
# mkdir -p /backup
# tar cvzf /backup/linux200.tar.gz /test

위 명령어를 실행하면 /test 디렉토리를 비우고 /usr/bin에서 모든 파일을 /test로 복사한 후 /backup 디렉토리를 생성합니다. 그리고 /test 디렉토리를 압축하여 linux200.tar.gz 파일을 /backup 디렉토리에 저장합니다.

이제 다음과 같이 명령어를 입력하여 파일을 전송합니다.

# scp /backup/linux200.tar.gz 192.168.10.252:/backup

위 명령어를 실행하면 scp를 사용하여 /backup/linux200.tar.gz 파일을 192.168.10.252의 /backup 디렉토리로 복사합니다.

만약 192.168.10.252에 /backup 디렉토리가 존재하지 않으면 backup 이라는 파일로 생성됩니다. 이를 방지하기 위해 다음과 같이 명령어를 입력합니다.

[root@server2 /]# mkdir /backup
[root@server2 /]# exit
logout
Connection to 192.168.10.252 closed.
[root@server1 backup]# scp /backup/linux200.tar.gz 192.168.10.252:/backup

위 명령어를 실행하면 scp를 사용하여 /backup/linux200.tar.gz 파일을 192.168.10.252의 /backup 디렉토리로 복사합니다. 이후, ssh를 사용하여 192.168.10.252로 접속하고, 다음과 같이 명령어를 입력하여 파일 전송이 정상적으로 이루어졌는지 확인합니다.

# ssh 192.168.10.252 ls /backup

위 명령어를 실행하면 ssh를 사용하여 192.168.10.252의 /backup 디렉토리에 있는 파일 목록을 확인합니다.

 

로컬 && 원격 파일/디렉토리 비교

로컬에서 /etc/hosts 파일을 확인합니다.

# cat /etc/hosts

ssh를 사용하여 192.168.10.252에서 /etc/hosts 파일을 확인합니다.

# ssh 192.168.10.252 cat /etc/hosts

로컬에서 /test 디렉토리를 확인합니다.

# ls /test

ssh를 사용하여 192.168.10.252에서 /test 디렉토리를 확인합니다.

# ssh 192.168.10.252 ls /test
반응형