웹사이트 검색

Ubuntu 12.04에서 SSH 키를 설정하는 방법


소개

SSH(Secure Shell Protocol)는 사용자가 보안되지 않은 네트워크를 통해 원격 컴퓨터에 안전하게 액세스할 수 있도록 하는 암호화 네트워크 프로토콜입니다.

SSH는 암호 기반 인증을 지원하지만 일반적으로 SSH 키를 대신 사용하는 것이 좋습니다. SSH 키는 일반적인 무차별 대입 암호 해킹 공격에 취약하지 않기 때문에 SSH 서버에 로그인하는 보다 안전한 방법입니다.

SSH 키 쌍을 생성하면 공개 키와 개인 키라는 두 개의 긴 문자열이 생성됩니다. 모든 서버에 공개 키를 배치한 다음 개인 키에 액세스할 수 있는 SSH 클라이언트를 사용하여 서버에 연결할 수 있습니다.

공개 키와 개인 키가 일치하면 SSH 서버는 암호 없이도 액세스 권한을 부여합니다. 선택적(하지만 적극 권장되는) 암호로 개인 키를 보호하여 키 쌍의 보안을 더욱 강화할 수 있습니다.

참고: DigitalOcean 계정에서 SSH 키 설정에 대한 정보를 찾고 있다면 SSH 키에 대한 DigitalOcean 제품 설명서를 참조하십시오.

1단계 - 키 쌍 생성

첫 번째 단계는 클라이언트 시스템에서 키 쌍을 만드는 것입니다. 이것은 아마도 로컬 컴퓨터일 것입니다. 로컬 명령줄에 다음 명령을 입력합니다.

  1. ssh-keygen -t ed25519
Output
Generating public/private ed25519 key pair.

키 생성 프로세스가 시작되었다는 확인 메시지가 표시되고 다음 단계에서 논의할 몇 가지 정보를 입력하라는 메시지가 표시됩니다.

참고: ed25519 키 쌍 생성을 지원하지 않는 이전 시스템에 있거나 연결하려는 서버가 이를 지원하지 않는 경우 강력한 rsa 를 생성해야 합니다. 대신 키 쌍:

  1. ssh-keygen -t rsa -b 4096

이렇게 하면 -t "type\ 플래그가 rsa로 변경되고 -b 4096 "bits\ 플래그가 추가되어 4096비트가 생성됩니다. 열쇠.

2단계 - 키를 저장할 위치 지정

ssh-keygen 명령의 첫 번째 프롬프트는 키를 저장할 위치를 묻습니다.

Output
Enter file in which to save the key (/home/sammy/.ssh/id_ed25519):

여기에서 ENTER를 눌러 파일을 홈 디렉토리의 .ssh 디렉토리의 기본 위치에 저장할 수 있습니다.

또는 프롬프트 다음에 입력하고 ENTER를 눌러 다른 파일 이름이나 위치를 선택할 수 있습니다.

3단계 - 암호 생성

ssh-keygen의 두 번째이자 마지막 프롬프트는 암호를 입력하라는 메시지를 표시합니다.

Output
Enter passphrase (empty for no passphrase):

암호를 사용할지 여부는 귀하에게 달려 있지만 강력하게 권장됩니다. 암호화 체계에 관계없이 키 쌍의 보안은 여전히 다른 사람이 액세스할 수 없다는 사실에 달려 있습니다.

암호가 없는 개인 키가 승인되지 않은 사용자의 소유가 되는 경우 관련 공개 키로 구성한 모든 서버에 로그인할 수 있습니다.

암호를 입력하는 것의 주요 단점은 ssh-agent 서비스를 사용하여 완화할 수 있습니다. 이 서비스는 잠금 해제된 키를 임시로 저장하고 SSH 클라이언트에서 액세스할 수 있도록 합니다. 이러한 에이전트 중 다수는 운영 체제의 기본 키체인과 통합되어 잠금 해제 프로세스를 더욱 원활하게 만듭니다.

요약하면 전체 키 생성 프로세스는 다음과 같습니다.

  1. ssh-keygen -t ed25519
Output
Generating public/private ed25519 key pair. Enter file in which to save the key (/home/sammy/.ssh/id_ed25519): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/sammy/.ssh/id_ed25519 Your public key has been saved in /home/sammy/.ssh/id_ed25519.pub The key fingerprint is: SHA256:EGx5HEXz7EqKigIxHHWKpCZItSj1Dy9Dqc5cYae+1zc sammy@hostname The key's randomart image is: +--[ED25519 256]--+ | o+o o.o.++ | |=oo.+.+.o + | |*+.oB.o. o | |*. + B . . | | o. = o S . . | |.+ o o . o . | |. + . ... . | |. . o. . E | | .. o. . . | +----[SHA256]-----+

공개 키는 이제 /home/sammy/.ssh/id_ed25519.pub에 있습니다. 개인 키는 이제 /home/sammy/.ssh/id_ed25519에 있습니다.

4단계 - 공개 키를 서버에 복사

키 쌍이 생성되면 연결하려는 서버에 공개 키를 배치할 차례입니다.

ssh-copy-id 명령을 사용하여 공개 키를 서버의 authorized_keys 파일에 복사할 수 있습니다. 예시 사용자 이름과 주소를 다음과 같이 바꿔야 합니다.

  1. ssh-copy-id sammy@your_server_address

명령이 완료되면 암호를 묻지 않고 SSH를 통해 서버에 로그인할 수 있습니다. 그러나 SSH 키를 생성할 때 암호를 설정하면 이때 암호를 입력하라는 메시지가 표시됩니다. 이것은 개인 키를 해독하도록 요청하는 로컬 ssh 클라이언트이며 암호를 요청하는 원격 서버가 아닙니다.

5단계 - 암호 기반 SSH 인증 비활성화(선택 사항)

SSH 키를 서버에 복사한 후에는 암호 기반 인증을 비활성화하도록 SSH 서버를 구성하여 암호 로그인을 완전히 금지할 수 있습니다.

경고: 암호 기반 인증을 비활성화하기 전에 SSH 키를 사용하여 서버에 성공적으로 로그인할 수 있는지, 서버에 암호를 사용하여 로그인하는 다른 사용자가 없는지 확인하십시오.

암호 기반 SSH 인증을 비활성화하려면 SSH 구성 파일을 엽니다. 일반적으로 다음 위치에서 찾을 수 있습니다.

  1. sudo nano /etc/ssh/sshd_config

이 명령은 nano 텍스트 편집기 내에서 파일을 엽니다. 파일에서 PasswordAuthentication이 포함된 줄을 찾고(또는 존재하지 않는 경우 줄을 만들고) 시작 부분에 #로 주석 처리되지 않았는지 확인합니다. 다음과 같이 no로 변경합니다.

PasswordAuthentication no

완료되면 파일을 저장하고 닫습니다. nano에서 CTRL+O를 사용하여 저장하고 ENTER를 눌러 파일 이름을 확인한 다음 CTRL+X를 눌러 출구.

이러한 변경 사항을 적용하려면 sshd 서비스를 다시 로드하십시오.

  1. sudo systemctl reload sshd

현재 SSH 세션을 종료하기 전에 다른 터미널에서 테스트 연결을 만들어 여전히 연결할 수 있는지 확인하십시오.

결론

이 자습서에서는 SSH 키 쌍을 만들고 공개 키를 서버에 복사하고 (선택 사항) 암호 기반 인증을 완전히 비활성화했습니다.

다단계 인증 설정 방법을 포함하여 SSH 및 SSH 서비스에 대한 자세한 내용은 관련 자습서를 참조하십시오.

  • SSH를 사용하여 원격 서버에 연결하는 방법
  • SSH 기초: SSH 서버, 클라이언트 및 키 작업
  • Ubuntu 20.04에서 SSH에 대한 Multi-Factor Authentication을 설정하는 방법