Section 14.5: public 및 private key 생성하기

SSH 클라이언트에서 사용할 key 를 생성하려면 다음 명령어를 사용한다:

ssh-keygen [-t rsa | rsa1 | dsa ] [-C <comment>] [-b bits]

예제:

ssh-keygen -t rsa -b 4096 - C myemail@email.com

생성될 파일들의 기본 위치는 private key 의 경우 ~/.ssh/id_rsa 이며, public key 의 경우 ~/.ssh/id_rsa.pub 이다.

더 상세한 정보는 man.openbsd.org 에서 확인할 수 있다.

본 문서는 Linux Notes for Professionals (라이센스:CC-BY-SA) 를 한글로 번역한 문서입니다. 번역상 오류가 있을 수 있으므로 정확한 내용은 원본 문서를 참고하세요.

[출처] https://books.goalkicker.com/GitBook/

반응형

Section 14.4: 암호를 사용하지 않고 (key pair 를 이용하여) 접속하기

우선적으로 key pair 가 필요하다. 이미 생성되어 있는 key pair 가 없다면, 다음 항목인 'public 및 private key 생성하기' 을 참고하라.

key pair 는 private key (id_rsa 파일) 와 public key (id_rsa.pub 파일) 로 이루어져 있다. 이 중에서 작업 수행이 필요한 부분은 바로 public key 로써, 해당 파일의 내용을 접속하고자 하는 원격 서버의 ~/.ssh/authorized_keys 에 추가해주어야 한다.

위에서 설명한 작업을 수행하는 손쉬운 방법 하나는 다음과 같다:

ssh <user>@<ssh-server> 'cat >> ~/.ssh/authorized_keys' < id_rsa.pub

위에서 소개한 방법으로 public key 가 서버 내 사용자 home 디렉토리에 정상적으로 추가가 되었다면, 이제 상응하는 private key 파일을 이용하여 로그인을 수행할 수 있다:

ssh <user>@<ssh-server> -i id_rsa
본 문서는 Linux Notes for Professionals (라이센스:CC-BY-SA) 를 한글로 번역한 문서입니다. 번역상 오류가 있을 수 있으므로 정확한 내용은 원본 문서를 참고하세요.

[출처] https://books.goalkicker.com/GitBook/

반응형

Section 14.3: SSH 서버가 접속을 처리할 수 있게 설정하기

우선적으로 할일은 SSH daemon 환경설정 파일을 편집하는 것이다. 많은 리눅스 배포판이 존재하기에 각 시스템마다 해당 파일이 각기 다른 디렉토리에 위치하고 있을 수도 있지만, 통상적으로 이 파일은 /etc/ssh/sshd_config 위치에 저장되는 경우가 많다.

텍스트 편집기를 이용하여 이 파일 내의 값들을 변경하되, # 로 시작되는 줄들은 주석 처리된 줄로써 해당 줄 내용이 실제 적용되기 위해서는 주석 처리 문자를 제거해야 한다. 여러가지 추천 항목들이 파일에 소개되어 있다.

Port (0 - 65535 사이의 숫자를 선택한다. 일반적으로 4자리 이상의 숫자를 사용한다) PasswordAuthentication yes AllowUsers user1 user2 ...etc

암호 (password) 를 이용한 로그인은 비활성화 하고 이후 챕터들에 소개된 것처럼 SSH 키를 사용하도록 하는 것이 보안 측면에서 더 유리함을 유의하여야 한다.

본 문서는 Linux Notes for Professionals (라이센스:CC-BY-SA) 를 한글로 번역한 문서입니다. 번역상 오류가 있을 수 있으므로 정확한 내용은 원본 문서를 참고하세요.

[출처] https://books.goalkicker.com/GitBook/

반응형

Section 14.2: OpenSSH 도구 모음 (suite) 설치하기

원격 SSH 서버에 접속하는 작업과 현재 시스템이 SSH 접속을 처리할 수 있게 하는 작업 모두 openssh 패키지 설치를 필요로한다.

Debian:

# apt-get install openssh

Arch Linux:

# pacman -S openssh

Yum:

# yum install openssh
본 문서는 Linux Notes for Professionals (라이센스:CC-BY-SA) 를 한글로 번역한 문서입니다. 번역상 오류가 있을 수 있으므로 정확한 내용은 원본 문서를 참고하세요.

[출처] https://books.goalkicker.com/GitBook/

반응형

Section 14.1: 원격 서버에 ssh 접속하기

서버에 접속을 수행하기 위해서는 클라이언트에서 아래와 같은 방법으로 SSH 를 사용할 수 있다.

# ssh -p port user@server-address
  • port - 서버가 ssh 를 위해 열어놓은 (listening) 포트 (기본 포트 : 22).
  • user - 서버에 존재하며 SSH 권한을 갖고있는 사용자여야 한다.
  • server address - 서버의 IP/Domain 주소.

실제 상황과 유사한 예제를 위해, 사용자가 웹사이트를 만드는 상황을 가정하여 보자. 웹사이트를 호스팅하도록 할 회사로부터 서버 주소는 web-servers.com 이며 설정된 접속 포트는 2020 이고 사용자의 계정 이름은 usr1 이 할당되어 서버에 SSH 권한을 가진 사용자로 추가가 완료되었다고 연락을 받았다고 하자. 이러한 경우에는 SSH 명령어를 아래와 같이 입력할 수 있다.

# ssh -p 2020 usr1@web-servers.com

만약 원격 시스템상의 사용자 계정 이름이 로컬 클라이언트상의 계정 이름과 동일할 경우에는 사용자 이름 부분을 생략 가능하다.

따라서, 만약 서버와 클라이언트 두 시스템상의 사용자 이름이 모두 usr1 라면 usr1@web-servers.com 대신에 간단히 web-servers.com 와 같이 입력할 수 있다.

만약 접속하고자 하는 서버가 사용자의 시스템에서 바로 직접 접속할 수 없는 환경이라면, 사용자가 접속 가능하면서도 대상 서버로의 접속도 허용되어 있는 또다른 서버를 경유하여 접속하도록 도와주는 ProxyJump 옵션을 통해 접속을 시도해 볼 수 있다.

# ssh -J usr1@10.0.0.1:2020 usr2@10.0.0.2 -p 2222

위 명령어는 서버 10.0.0.1 (ssh 포트 2020 로 동작) 을 경유하여 10.0.0.2 서버 (ssh 포트 2222 로 동작) 에 접속할 수 있게 해준다. 물론 당연히 사용자는 두 서버 모두에 계정을 보유한 상태여야 한다. 또한 -J 옵션은 OpenSSH 버전 7.3 부터 사용 가능하다는 점도 참고하여야 한다.

본 문서는 Linux Notes for Professionals (라이센스:CC-BY-SA) 를 한글로 번역한 문서입니다. 번역상 오류가 있을 수 있으므로 정확한 내용은 원본 문서를 참고하세요.

[출처] https://books.goalkicker.com/GitBook/

반응형

Chapter 14: Secure Shell (SSH)

Secure shell 은 클라이언트가 암호화된 연결을 통해 서버에 원격 접속을 수행하기 위해 사용된다. 동일하게 원격 쉘 접속 기능을 제공하지만 암호화되지 않는 Telnet 연결을 대체하기 위해 사용되는 것이 바로 OpenSSH 이다. OpenSSH 클라이언트는 대부분의 GNU/Linux 배포판에 기본적으로 설치가 되어 서버 연결에 사용되고 있다. 이 챕터에서는 SSH 도구들을 어떠한 방식으로 이용해 SSH 연결을 받아들이고 또한 다른 호스트에 연결을 맺을 수 있는지에 대한 예제들을 소개한다.

본 문서는 Linux Notes for Professionals (라이센스:CC-BY-SA) 를 한글로 번역한 문서입니다. 번역상 오류가 있을 수 있으므로 정확한 내용은 원본 문서를 참고하세요.

[출처] https://books.goalkicker.com/GitBook/

반응형

Section 13.4: tee 명령어가 기존 파일에 내용을 추가 (append) 하도록 설정하기

기본적으로 tee 명령어는 대상 파일을 덮어쓰게 되어 있다. 아래와 같이 –a 옵션을 이용하면 파일을 덮어쓰지 않고, 기존 파일에 새로운 내용을 추가할 수 있다.

$ ls | tee –a file
본 문서는 Linux Notes for Professionals (라이센스:CC-BY-SA) 를 한글로 번역한 문서입니다. 번역상 오류가 있을 수 있으므로 정확한 내용은 원본 문서를 참고하세요.

[출처] https://books.goalkicker.com/GitBook/

반응형

Section 13.3: 출력 결과를 복수의 파일에 기록하기

tee 를 이용하면 아래와 같이 출력 결과를 여러개의 파일 (사용자의 터미널을 포함) 에 pipe 로 전달할 수 있다:

$ ls | tee file1 file2 file3
본 문서는 Linux Notes for Professionals (라이센스:CC-BY-SA) 를 한글로 번역한 문서입니다. 번역상 오류가 있을 수 있으므로 정확한 내용은 원본 문서를 참고하세요.

[출처] https://books.goalkicker.com/GitBook/

반응형

+ Recent posts