댓글 검색 목록

[기타] Linux에서 원격 연결을위한 SSH 초보자 가이드

페이지 정보

작성자 운영자 작성일 20-09-22 16:37 조회 756 댓글 0

보안 셸을 사용하여 원격 컴퓨터와의 연결을 설정합니다.


Linux의 가장 매력적인 기능 중 하나는 키보드에 명령만 입력하여 컴퓨터를 능숙하게 사용할 수 있다는 것입니다. 

더 좋은 점은 전 세계 어디에서나 컴퓨터에서 수행 할 수 있다는 것입니다. OpenSSH 덕분에 POSIX 사용자는 액세스 권한이 있는 모든 컴퓨터에서 보안 셸을 열고 원격 위치에서 사용할 수 있습니다. 

많은 Linux 사용자에게는 일상적인 작업이지만 아직 사용해 보지 않은 사람에게는 혼란스러울 수 있습니다. 

이 문서에서는 SSH (보안 셸) 연결을 위해 두 대의 컴퓨터를 구성하는 방법과 암호 없이 한 대에서 다른 컴퓨터로 안전하게 연결하는 방법을 설명합니다.


https://opensource.com/article/20/9/ssh


Terminology 


두 대 이상의 컴퓨터에 대해 논의 할 때 서로를 식별하는 것이 혼란스러울 수 있습니다. IT 커뮤니티에는 컴퓨터를 함께 네트워킹하는 프로세스에 대한 설명을 명확히 하는 데 도움이 되는 잘 정립 된 용어가 있습니다.


  • Service: 서비스는 설치된 컴퓨터가 아닌 다른 컴퓨터에서 사용할 수 있도록 백그라운드에서 실행되는 소프트웨어입니다. 예를 들어 웹 서버는 웹 공유 서비스를 호스팅 합니다. 이 용어는 그래픽 인터페이스가 없는 소프트웨어임을 암시하지만 주장하지는 않습니다.
  • Host: 호스트는 모든 컴퓨터입니다. IT에서는 기술적으로 모든 컴퓨터가 다른 컴퓨터에 유용한 응용 프로그램을 호스팅 할 수 있기 때문에 컴퓨터를 호스트라고 합니다. 랩톱을 "호스트"로 생각하지 않을 수도 있지만 사용자, 모바일 또는 다른 컴퓨터에 유용한 서비스를 실행하고 있을 가능성이 있습니다.
  • Local: 로컬 컴퓨터는 사용자 또는 일부 소프트웨어에서 사용하는 컴퓨터입니다. 예를 들어 모든 컴퓨터는 자신을 localhost라고 합니다.
  • Remote: 원격 컴퓨터는 실제로 사용하지도 않고 실제로 사용하지도 않는 컴퓨터입니다. 원격 위치에 있는 컴퓨터입니다.

이제 용어가 정해졌으므로 시작할 수 있습니다.


각 호스트에서 SSH 활성화 


SSH를 통해 두 대의 컴퓨터를 연결하려면 각 호스트에 SSH가 설치되어 있어야 합니다. SSH에는 연결을 시작하기 위해 로컬 컴퓨터에서 사용하는 명령과 들어오는 연결 요청을 수락하는 서버의 두 가지 구성 요소가 있습니다. 일부 컴퓨터에는 SSH의 한 부분 또는 두 부분이 이미 설치되어 있습니다. 명령은 시스템에 따라 다르며 명령과 서버가 모두 설치되어 있는지 확인하므로 가장 쉬운 방법은 관련 구성 파일을 찾는 것입니다.


file /etc/ssh/ssh_config
/etc/ssh/ssh_config: ASCII text 


No such file or directory 오류가 반환 되면 SSH 명령이 설치되지 않은 것입니다.


SSH 서비스에 대해 유사한 검사를 수행하십시오 (파일 이름의 d에 유의하십시오).


file /etc/ssh/sshd_config
/etc/ssh/sshd_config: ASCII text 


필요에 따라 둘 중 하나를 설치합니다.


sudo dnf install openssh-clients openssh-server 


원격 컴퓨터에서 systemd를 사용하여 SSH 서비스를 활성화합니다.


sudo systemctl enable --now sshd 


또는 GNOME의 시스템 설정 또는 macOS의 시스템 환경 설정에서 SSH 서비스를 활성화 할 수 있습니다. 그놈 데스크탑에서는 공유 패널에 있습니다.


Activate SSH in GNOME System Settings 


보안 셸 시작 


이제 원격 컴퓨터에 SSH를 설치하고 활성화 했으므로 테스트로 암호를 사용하여 로그인을 시도 할 수 있습니다. 원격 컴퓨터에 액세스하려면 사용자 계정과 암호가 있어야 합니다.


원격 사용자가 로컬 사용자와 같을 필요는 없습니다. 해당 사용자의 암호가 있는 한 원격 컴퓨터의 모든 사용자로 로그인 할 수 있습니다. 예를 들어, 저는 업무용 컴퓨터에서는 sethkenlon이지만 개인용 컴퓨터에서는 seth입니다. 개인용 컴퓨터 (현재 로컬 컴퓨터로 설정)를 사용 중이고 회사 컴퓨터에 SSH를 사용하려는 경우 자신을 sethkenlon으로 식별하고 회사 암호를 사용하여 이를 수행 할 수 있습니다.


원격 컴퓨터에 SSH로 연결하려면 인터넷 프로토콜 (IP) 주소 또는 확인 가능한 호스트 이름을 알아야 합니다. 원격 컴퓨터의 IP 주소를 찾으려면 원격 컴퓨터에서 ip 명령을 사용하십시오.


ip addr show | grep "inet "
inet 127.0.0.1/8 scope host lo
inet 10.1.1.5/27 brd 10.1.1.31 [...] 


원격 컴퓨터에 ip 명령이 없으면 대신 ifconfig (또는 Windows에서는 ipconfig)를 시도하십시오.


주소 127.0.0.1은 특수한 주소이며 실제로 localhost의 주소입니다. 시스템이 자신에게 도달하는 데 사용하는 "루프백"주소입니다. 원격 컴퓨터에 로그인 할 때는 유용하지 않으므로 이 예에서 원격 컴퓨터의 올바른 IP 주소는 10.1.1.5입니다. 실생활에서는 로컬 네트워크가 10.1.1.0 서브넷을 사용하기 때문에 알 수 있습니다. 원격 컴퓨터가 다른 네트워크에 있는 경우 IP 주소는 거의 모든 것이 될 수 있으며 (하지만 127.0.0.1이 아님) 다양한 방화벽을 통해 연결하려면 특수 라우팅이 필요할 수 있습니다. 원격 컴퓨터가 동일한 네트워크에 있다고 가정하지만 자신의 네트워크보다 원격 컴퓨터에 연결하는 데 관심이 있는 경우 방화벽에서 포트 열기에 대한 내 기사를 읽어보십시오.


IP 주소 또는 호스트 이름으로 원격 시스템을 ping 할 수 있고 로그인 계정이 있는 경우 SSH로 연결할 수 있습니다.


ping -c1 10.1.1.5
PING 10.1.1.5 (10.1.1.5) 56(84) bytes of data.
64 bytes from 10.1.1.5: icmp_seq=1 ttl=64 time=4.66 ms
ping -c1 akiton.local
PING 10.1.1.5 (10.1.1.5) 56(84) bytes of data. 


그것은 성공입니다. 이제 SSH를 사용하여 로그인하십시오.


whoami
seth
ssh sethkenlon@10.1.1.5
bash$ whoami
sethkenlon 


테스트 로그인이 작동하므로 이제 암호 없는 로그인을 활성화 할 준비가 되었습니다.


SSH 키 만들기 


암호 없이 다른 컴퓨터에 안전하게 로그인하려면 SSH 키가 있어야 합니다. 이미 SSH 키가 있을 수 있지만 새 키를 만들어도 괜찮습니다. SSH 키는 로컬 시스템에서 수명을 시작합니다. 이는 두 가지 구성 요소로 구성됩니다. 개인 키는 누구와도 공유하지 않으며, 다른 하나는 암호 없이 액세스하려는 원격 컴퓨터에 복사합니다.


어떤 사람들은 하나의 SSH 키를 만들어 원격 로그인에서 GitLab 인증에 이르기까지 모든 것에 사용합니다. 그러나 작업 그룹마다 다른 키를 사용합니다. 예를 들어, 저는 집에서 하나의 키를 사용하여 로컬 컴퓨터에 인증하고, 다른 키를 내가 유지 관리하는 웹 서버에 인증하고, 별도의 키는 Git 호스트에, 다른 하나는 호스팅 하는 Git 저장소에 사용합니다. 이 예에서는 LAN 내의 컴퓨터에서 사용할 고유 키를 만듭니다.


새 SSH 키를 생성하려면 ssh-keygen 명령을 사용하십시오.


ssh-keygen -t ed25519 -f ~/.ssh/lan 


-t 옵션은 유형을 나타내며 키에 사용되는 암호화가 기본값보다 높은지 확인합니다. -f 옵션은 파일을 나타내며 키의 파일 이름과 위치를 설정합니다. SSH 키에 대한 비밀번호를 생성하라는 메시지가 표시됩니다. 키에 대한 암호를 만들어야 합니다. 즉, 키를 사용할 때 암호를 입력해야 하지만 해당 암호는 로컬로 유지되고 네트워크를 통해 전송되지 않습니다. 이 명령을 실행하면 lan이라는 SSH 개인 키와 lan.pub라는 SSH 공개 키가 남습니다.


공개 키를 원격 시스템으로 가져 오려면 ssh-copy-id를 사용하십시오. 이 작업을 수행하려면 원격 시스템에 대한 SSH 액세스 권한이 있는지 확인해야 합니다. 암호를 사용하여 원격 호스트에 로그인 할 수 없는 경우 다음 중 하나에서 암호 없는 로그인을 설정할 수 없습니다.


ssh-copy-id -i ~/.ssh/lan.pub sethkenlon@10.1.1.5 


이 과정에서 원격 호스트에서 로그인 암호를 입력하라는 메시지가 표시됩니다.


성공하면 다시 로그인을 시도하지만 이번에는 -i 옵션을 사용하여 SSH 명령이 적절한 키를 가리키도록 합니다 (이 예에서는 lan).


ssh -i ~/.ssh/lan sethkenlon@10.1.1.5
bash$ whoami
sethkenlon 


네트워크의 모든 컴퓨터에 대해이 프로세스를 반복하면 암호에 대해 다시 생각하지 않고 각 호스트를 돌아 다닐 수 있습니다. 실제로 암호 없는 인증이 설정되면 / etc / ssh / sshd_config 파일을 편집하여 암호 인증을 허용하지 않을 수 있습니다. 

이렇게 하면 개인 키가 없는 사람이 SSH를 사용하여 컴퓨터에 인증하는 것을 방지 할 수 있습니다. 이렇게 하려면 sudo 권한이 있는 텍스트 편집기에서 /etc/ssh/sshd_config를 열고 PasswordAuthentication 문자열을 검색합니다. 기본 행을 다음과 같이 변경하십시오.


PasswordAuthentication no 


저장하고 SSH 서버를 다시 시작하십시오 (또는 재부팅 하십시오).


sudo systemctl restart sshd && echo "OK"
OK
$ 


매일 SSH 사용 


OpenSSH는 컴퓨팅의 관점을 바꿉니다. 당신은 더 이상 당신 앞에 있는 컴퓨터에만 묶여 있지 않습니다. SSH를 사용하면 집에 있는 모든 컴퓨터 또는 계정이 있는 서버, 심지어 모바일 및 사물 인터넷 장치에 액세스 할 수 있습니다. SSH의 성능을 잠금 해제하면 Linux 터미널의 성능도 잠금 해제됩니다. 매일 SSH를 사용하지 않는다면 지금 시작하세요. 그것에 익숙해지고, 열쇠를 모으고, 더 안전하게 살고, 세상을 확장하십시오.



댓글목록 0

등록된 댓글이 없습니다.

웹학교 로고

온라인 코딩학교

코리아뉴스 2001 - , All right reserved.