웹사이트 검색

원격 액세스를 단순화하기 위해 사용자 정의 SSH 연결을 구성하는 방법


SSH(SSH 클라이언트)는 컴퓨터에 원격으로 액세스하기 위한 프로그램으로, 사용자가 원격 호스트에서 명령을 실행할 수 있도록 해줍니다. 이는 안전하지 않은 네트워크를 통해 신뢰할 수 없는 두 호스트 간에 안전하게 암호화된 통신을 제공하도록 설계되었기 때문에 원격 호스트에 로그인하는 데 가장 권장되는 방법 중 하나입니다.

SSH는 시스템 전체 구성 파일과 사용자별(맞춤형) 구성 파일을 모두 사용합니다. 이 튜토리얼에서는 사용자 정의 SSH 구성 파일을 생성하고 특정 옵션을 사용하여 원격 호스트에 연결하는 방법을 설명합니다.

요구사항:

  1. Linux 데스크톱에 OpenSSH 클라이언트가 설치되어 있어야 합니다.
  2. SSH를 통한 원격 연결에 사용되는 일반 옵션을 이해합니다.

SSH 클라이언트 구성 파일

다음은 SSH 클라이언트 구성 파일의 위치입니다.

  1. /etc/ssh/ssh_config – 시스템 전체의 기본 구성 파일입니다. 여기에는 SSH 클라이언트 시스템의 모든 사용자에게 적용되는 설정이 포함되어 있습니다.
  2. ~/.ssh/config 또는 $HOME/.ssh/config – 사용자별/사용자 정의 구성 파일입니다. 특정 사용자에게 적용되는 구성이 있습니다. 따라서 시스템 전체 구성 파일의 기본 설정을 재정의합니다. 이것이 우리가 만들고 사용할 파일입니다.

기본적으로 사용자는 비밀번호를 사용하여 ssh에서 인증되지만, 5가지 간단한 단계를 통해 ssh keygen을 사용하여 SSH 비밀번호 없는 로그인을 설정할 수 있습니다.

참고: 데스크톱 시스템에 ~/.ssh 디렉토리가 없는 경우 다음 권한으로 생성하세요.


mkdir -p ~/.ssh
chmod 0700 ~/.ssh   

위의 chmod 명령은 SSH 설정에 따라 사용자만이 디렉토리에 대한 읽기, 쓰기 및 실행 권한을 가질 수 있음을 의미합니다.

사용자별 SSH 구성 파일을 만드는 방법

이 파일은 일반적으로 기본적으로 생성되지 않으므로 해당 사용자에게만 읽기/쓰기 권한을 부여하여 생성해야 합니다.


touch ~/.ssh/config
chmod 0700 ~/.ssh/config

위 파일에는 호스트 사양에 정의된 섹션이 포함되어 있으며, 해당 섹션은 사양에 설정된 패턴 중 하나와 일치하는 호스트에만 적용됩니다.

~/.ssh/config의 일반적인 형식은 다음과 같으며, 모든 빈 줄과 '#'로 시작하는 줄은 주석으로 간주됩니다.


Host    host1
	ssh_option1=value1
	ssh_option2=value1 value2
	ssh_option3=value1 

Host    host2
	ssh_option1=value1
	ssh_option2=value1 value2

Host  *
	ssh_option1=value1
	ssh_option2=value1 value2

위의 형식에서:

  1. 호스트 호스트1호스트 호스트1에 대한 헤더 정의입니다. 여기서 호스트 사양이 시작되고 다음 헤더 정의로 끝납니다. 호스트 호스트2는 섹션.
  2. host1, host2는 단순히 명령줄에서 사용하기 위한 호스트 별칭이며 원격 호스트의 실제 호스트 이름이 아닙니다.
  3. ssh_option1=value1, ssh_option2=value1 value2와 같은 구성 옵션은 일치하는 호스트에 적용되며 잘 정리된 형식을 위해 들여쓰기되어야 합니다.
  4. ssh_option2=value1 value2와 같은 옵션의 경우 value1 값이 먼저 고려되고 그 다음 value2가 고려됩니다.
  5. 헤더 정의 Host *(여기서 *는 패턴 – 0개 이상의 문자와 일치하는 와일드카드)는 0개 이상의 호스트와 일치합니다.

위의 형식을 고려하면 이것이 ssh가 구성 파일을 읽는 방법입니다. 다음과 같이 ssh 명령을 실행하여 host1에 원격으로 액세스하는 경우:


ssh host1

위의 ssh 명령은 다음 작업을 수행합니다.

  1. 구성 파일의 호스트 별칭 host1을 일치시키고 정의 헤더 Host host1 아래에 설정된 옵션을 적용합니다.
  2. 그런 다음 다음 호스트 섹션인 Host host2로 이동하여 명령줄에 제공된 이름이 일치하지 않으므로 여기에서는 옵션이 사용되지 않음을 확인합니다.
  3. 모든 호스트와 일치하는 마지막 섹션인 Host *로 진행됩니다. 여기서는 이 섹션의 모든 옵션을 호스트 연결에 적용합니다. 그러나 이전 섹션에서 이미 사용된 옵션 값을 재정의할 수는 없습니다.
  4. host2에도 동일하게 적용됩니다.

사용자별 SSH 구성 파일을 사용하는 방법

SSH 클라이언트 구성 파일의 작동 방식을 이해하고 나면 다음과 같이 해당 파일을 생성할 수 있습니다. 서버 환경에 적용 가능한 옵션과 값(호스트 별칭, 포트 번호, 사용자 이름 등)을 사용해야 합니다.

원하는 편집기로 구성 파일을 엽니다.


vi ~/.ssh/config

그리고 필요한 섹션을 정의합니다.


Host fedora25
        HostName 192.168.56.15
        Port 22
        ForwardX11 no

Host centos7
        HostName 192.168.56.10
        Port 22
        ForwardX11 no

Host ubuntu
        HostName 192.168.56.5
        Port 2222
        ForwardX11 yes

Host *
        User tecmint
        IdentityFile ~/.ssh/id_rsa
        Protocol 2
        Compression yes
        ServerAliveInterval 60
        ServerAliveCountMax 20
        LogLevel INFO

위의 SSH 구성 옵션에 대한 자세한 설명입니다.

  1. HostName – 로그인할 실제 호스트 이름을 정의합니다. 또는 숫자 IP 주소를 사용할 수도 있습니다. 이는 허용됩니다(명령줄 및 HostName 사양 모두에서). .
  2. 사용자 – 로그인할 사용자를 지정합니다.
  3. 포트 – 원격 호스트에 연결할 포트 번호를 설정합니다. 기본값은 22입니다. 원격 호스트의 sshd 구성 파일에 구성된 포트 번호를 사용합니다.
  4. 프로토콜 – 이 옵션은 ssh가 선호하는 순서대로 지원해야 하는 프로토콜 버전을 정의합니다. 일반적인 값은 '1''2'이며, 여러 버전은 쉼표로 구분되어야 합니다.
  5. IdentityFile – 사용자의 DSA, Ed25519, RSA 또는 ECDSA 인증 ID를 읽는 파일을 지정합니다.
  6. ForwardX11 – X11 연결이 보안 채널 및 DISPLAY 세트를 통해 자동으로 리디렉션되는지 여부를 정의합니다. “yes” 또는 “no”의 두 가지 값이 가능합니다.
  7. 압축“yes” 값으로 원격 연결 중에 압축을 설정하는 데 사용됩니다. 기본값은 '아니요'입니다.
  8. ServerAliveInterval – 서버로부터 응답(또는 데이터)이 수신되지 않은 경우 시간 초과 간격을 초 단위로 설정합니다. SSH는 암호화된 채널을 통해 메시지를 보내 서버에 응답을 요청합니다. 기본값은 0이며, 이는 메시지가 서버로 전송되지 않음을 의미하며, BatchMode 옵션이 정의된 경우 300입니다.
  9. ServerAliveCountMax – SSH가 서버로부터 응답을 받지 않고 보낼 수 있는 서버 활성 메시지 수를 설정합니다.
  10. LogLevel – SSH에서 메시지를 기록할 때 사용되는 상세 수준을 정의합니다. 허용되는 값에는 QUIET, FATAL, ERROR, INFO, VERBOSE, DEBUG, DEBUG1, DEBUG2 및 DEBUG3이 포함됩니다. 기본값은 INFO입니다.

위 구성 파일의 섹션 2에 정의된 원격 Linux 호스트(제 경우 CentOS 7)에 연결하는 표준 방법은 일반적으로 아래 명령을 입력합니다.


ssh -i ~/.ssh/id_rsa -p 22 [email 

그러나 SSH 클라이언트 구성 파일을 사용하면 다음 명령을 간단히 입력할 수 있습니다.


ssh centos7 

SSH 클라이언트 구성 매뉴얼 페이지에서 더 많은 옵션과 사용 예를 찾을 수 있습니다.


$man ssh_config

여기까지입니다. 이 가이드에서는 Linux에서 사용자별(사용자 정의) SSH 클라이언트 구성 파일을 사용하는 방법을 설명했습니다. 이 기사에 관해 답장을 보내려면 아래 피드백 양식을 사용하세요.