코딩크리처 2024. 6. 11. 14:28

hyperskill - SSH 영어 원문

당신은 아마 서버가 무엇인지 알 것이며,

또다른 장치에서 명령어를 입력하는 것 만으로 어디서든 서버를 접속 할 수 있다는 것을 알 겁니다.

SSH는 서버와 연결하는 데 평범한 보안 메서드입니다.

SSH 서버를 어떻게 셋업하는지 탐색하며,

우리가 장치 간에 생성 해 놓은 SSH 커넥션 예제를 살펴보며 이에 접근 할 겁니다.

당신의 데스크톱 컴퓨터나 랩탑, 또 다른 데스크톱, 혹은 스마트폰이 될 수 있습니다.

또한 우리는 몇 가지 SSH 에 대한 실전적인 어플리케이션을 보게 될 겁니다.

SSH 커넥션을 넘어 파일을 복사하는 것 처럼요.


What is SSH and how to set SSH server and client?

- SSH는 무엇이고, 서버와 클라이언트는 어떻게 세팅하나요?


SSH의 약자는 (secure shell)의 약자입니다.

여기서 secure 인 이유는, 모든 정보가 암호화되었기 때문입니다.

SSH 커넥션을 위한 몇 가지 프로그램이 있는데,

가장 유명한 것은 OpenBSD 프로젝트로 만들어진 OpenSSH가 있습니다.

이 도구는 유닉스 바탕의 시스템과 심지어 윈도우까지 포함합니다.

대부분의 패키지 매니저는 이를 가지고 있으며, 많은 배포판들이 있습니다.

이는 기본으로 설치됩니다.


SSH 는 client-server 아키텍처로 사용됩니다.

이는 두 개의 컴퓨터가 SSH로 커넥팅 하기 위해서는 두 장치에 모두 설치되어야 한다는 것을 의미합니다.

서버에 SSH를 세팅 하기 위해서는 일단 서버 컴포넌트에 서버용 SSH를 설치해야 하며,

서버로 들어가기 위해서는 당신이 사용하는 장치에 클라이언트용 SSH를 설치해야 합니다.


첫 번째로, 홈 데스크탑에 SSH의 서버 컴포넌트를 설치 해 봅시다.

만약 당신이 Debian 베이스의 배포판이라면, 이 명령어를 사용하세요.

$ sudo apt install openssh-server

다른 배포판에서도 명령어들은 비슷합니다.

또한, 패키지 이름도 약간만 다릅니다.


SystemD (시스템 데몬) 을 가동하는 시스템에서 SSH-server를 가동하고 시작하려면 :

$ sudo systemctl enable ssh   # enable ssh such that it will start every time the system boots up

$ sudo systemctl start ssh    # start it now

$ sudo systemctl status ssh   # check its status

다른 초기화 시스템이 있는 시스템에서도, 명령어는 비슷합니다.

공통 된 흐름은 - 첫 번째로 가동시키고 나서, 시작한다.


아마 방화벽을 구성 할 필요가 있을 겁니다.

Uncomplicated firewall (UFW) 는 이 방식으로 다룰 겁니다 :

$ sudo ufw allow OpenSSH

당신의 두 번째 장치에서는(클라이언트 장치) , SSH 클라이언트 프로그램을 설치해야 합니다.

APT로 설치하기 위해서, 이를 실행하세요 :

$ sudo apt install openssh-client

How to get into a server with SSH - SSH로 서버 들어가는 법


이제 당신은 SSH 서버와 클라이언트를 가졌습니다.

따라서, 커넥션을 만들어 볼 수 있습니다.

이를 위해서, ssh 명령어를 치고 나서, 서버에 있는 당신의 username 을 치고, 서버의 IP 주소를 타이핑하세요.

여기 ssh 명령어에 대한 예제가 있습니다 :

$ ssh jason@104.21.85.36

만약 당신이 서버의 username을 지정하지 않는다면, 시스템에서 root 패스워드를 물어 볼 겁니다.


또한, 당신은 ~/.ssh/config 주소에 구성 파일을 생성하여 IP 주소와 username을 작성 할 수 있습니다.

예를 들어 :

Host my-ssh-server
 hostname 104.21.85.36
 user mdukuzi

이 예제에서 당신에게 서버 이름 my-ssh-server 라는 예시를 줬지만,

당신은 호스트에 대한 다른 이름을 선택 할 수 있습니다.

이 구성 파일과 함께, 서버에 접속하기 위해 이러한 명령어를 사용 할 수 있습니다 :

$ ssh my-ssh-server

성공적으로 올바른 패스워드를 입력 한 뒤, 처음인 만큼 확인에 대한 질문을 받을 겁니다.

당신의 IP address 와 키를 위한 지문도 ~/.ssh/known_hosts에 추가 될 겁니다.


이제 당신은 서버에서 작업 할 수 있습니다!

커넥션을 닫기 위해서 그냥 exit 명령어를 타이핑하면 됩니다.


Secure way - 보안 방법


연결하는 데 대체적이며, 더 보안적인 방식이 있습니다. - private (보안 키) 와 public (공개 키) key 를 사용하는 겁니다.


첫 번째 스텝은 공개 키와 비밀 키 쌍을 생성하는 겁니다.

당신이 서버에 아직 로그인 하지 않았을 때, 이 명령어를 치세요 :

$ ssh-keygen

위의 명령어는 GitHub와 같은 다른 웹사이트들에 대해 키를 생성하는 용도로 사용 할 수 있습니다.

이후, 당신은 키에 대한 이름와 위치를 지정하거나,

~/.ssh 디렉토리와 id_rsa 이름과 같은 기본 세팅을 그대로 내버려 둘 수 있습니다.

또한, 암호를 선택하라고 물어볼 수도 있는데,

만약 당신이 선택하고 싶지 않다면, 어떠한 것도 치지 마세오.


최종적으로, 당신은 선택 된 디렉토리에 2 개의 키를 가져야 합니다 : 비밀키와 공개키. 공개키는 .pub 확장자입니다.


그리고 나서 서버 디렉토리 ~/.sshauthorized_keys 파일에 당신의 공개 키를 추가하세요.

이를 더 쉽게 하려면 ssh-copy-id 명령어를 사용하세요.

이 명령어는 .ssh 디렉토리를 생성하며, authorized_keys 파일이 없다면, 자동으로 생성합니다.

$ ssh-copy-id -i ~/.ssh/id-key.pub my-host-server

이제 당신이 서버에 로그인 할 때, 키를 사용하기 위해서 암호를 묻는 메세지가 표시되거나,

이전에 키를 만드는 과정을 건너뛰었다면, 묻지 않을 겁니다.


위의 과정은 주로 작동 되지만,

만약 ssh 가 여전히 비밀 키를 위한 비밀번호가 아닌, 당신의 비밀번호를 묻는다면,

당신의 SSH-config 파일에 밑의 라인을 추가하세요.

IdentityFile id-rsa

이 라인에 있어 id-rsa 는 당신의 비밀 키 이름입니다.


How to copy files from the server - 서버로부터 파일 복사하는법


이제 SSH로 뭘 좀 해 봅시다.

예를 들어, 서버로부터 몇 개의 파일을 복사하거나, 그 반대도 말이죠.

이를 위해서, 우리는 scp 명령어를 사용 할 겁니다.

SSH 서버에 들어가기 위해서 ssh 명령어를 사용 할 필요가 없다는 것을 기억하세요.

서버로부터 manifest 파일을 복사하기 위해서 우리의 로컬 머신에서는 :

$ scp my-host-server:~/Documents/manifest ~/Project/

scp 이후에, config(구성) 파일에 있는 서버의 이름을 입력하고 (혹은 서버의 username@ip-address),

이후에 : 사인을 입력 한 뒤, 서버 공간에 있는 파일의 경로를 입력하세요.

그리고 나서 당신의 로컬 머신에 파일을 복사 할 경로를 입력하세요.


로컬 장치로부터 파일을 복사하고 싶다면, 로컬 장치의 파일 경로를 입력 한 후,

서버의 이름 그 다음에 : 사인을 입력하고, 서버에 복사 할 경로를 입력합니다.

$ scp ~/Project/ my-host-server:~/Documents/manifest

Conclusion - 결론


우리가 논의한 주요 포인트들을 비춰 보겠습니다.

지금 당신은 이러한 것들을 할 줄 압니다 :

  • openssh-server 프로그램을 설치해서 SSH 서버를 셋업하는 법
  • ssh 명령어를 사용해서 서버와 연결하는 법
  • ssh-keygenssh-copy-id 명령어를 사용해서 비밀번호 없는 보안을 셋업하는 법
  • scp 명령어를 사용해서 파일 전송하는 법 (서버 <==> 로컬 머신)

이는 SSH의 기본적인 개요밖에 되지 않으며,

인터넷을 통해 어떠한 장소에서 서버와 작업을 시작하기에는 충분치 않습니다.



words to remember


that's to say : ~와 같은

passphrase : 암호