aistages GPU 서버 접속 설정 (SSH key 등록)
서버에 접속하는 방법에 대해 캠퍼들에게 공유할 만한 설정법을 고민해보았다.
서버를 생성하면 key 파일이 자동으로 다운로드되는데, 서버를 반납하고 생성할 때마다 달라지는 key에 일일이 대응하기보다는 변하지 않는 내 컴퓨터에서 ssh key를 한 번 만들고 이를 서버에 등록하는 방식이 좋겠다고 생각했다.
더불어 이 방식은 ssh key가 무엇이고, 어떻게 동작하는지 배울 수 있을 것으로 예상한다.
Git 특강을 해주셨던 이고잉님이 만드신 생활코딩의 강의를 첨부한다. 영상을 보지 않고 그 밑에 설명만 봐도 충분하다.
SSH Key - 비밀번호 없이 로그인 - 원격제어 (opentutorials.org)
과정
과정은 아래 순서로 진행된다.
1. 내 컴퓨터의 ssh key 준비
2. 서버에 내 컴퓨터의 ssh key 등록
1. 내 컴퓨터의 ssh key 준비하기
터미널을 열어서 ssh-keygen을 입력하고 엔터를 계속 연타하면 홈 디렉토리(사용자 계정 폴더) 밑에 .ssh 폴더 안에 key가 생성된다.
(1) Windows는 PowerShell을 열고 (cmd 말고), macOS나 Linux는 터미널을 열자.
(2) ssh-keygen을 입력하고 Enter 키를 계속 연타하면 홈 디렉토리(사용자 계정 폴더) 밑에 .ssh 폴더 안에 key가 생성된다.
아래는 Windows PowerShell에서의 예시 결과지만, macOS나 Linux도 거의 동일하다.
PS C:\Users\jwseo> ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (C:\Users\jwseo/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in id_rsa.
Your public key has been saved in id_rsa.pub.
The key fingerprint is:
SHA256:JvD+4XQPlQxprQdcoQfx3aT/jZETb80YVyuJIxOWQRk jwseo@4350G
The key's randomart image is:
+---[RSA 3072]----+
| .EB.o. o|
| .+.B...+o|
| . oBo+o=.o|
| o .o*...X.|
| o S . = = *|
| . o o =o|
| . o o . o|
| + o o |
| o . |
+----[SHA256]-----+
PS C:\Users\jwseo>
(3) cat ~/.ssh/id_rsa.pub 을 입력하고 Enter 키를 누르면 아래와 같이 ssh-rsa로 시작하는 기다란 문자열의 공개키(Public Key)값이 출력된다. 이 부분을 마우스로 드래그해서 복사한다.
PS C:\Users\jwseo> cat ~/.ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDHIT+Haat2PKLzsEOw/oreqYeqfC9npcpdQDTLTr0O/7AAd9aSVL9RX8DCdpFE4oqNu9JJBHjMa2tpNN+TPfDXrZbA6D66lPquJLWMpAofpNvuCwwkDAaXvznnaKfiH+ZY4d7LQvu1vt6Pia5BRiiDPRD+pjAVDgjNLBGP73XwUMeQLpQjzqNTV20PdjBqmSbKcD2f5pQRPNMhtyRjQ6n49+jFxEfUlGFUKT3iKRnxkr4x9VZ94hvad09PU7dlv0qcfF9xAJrXKL3rsNl25Ls67HfxO1oSaBjlZS5I5IlOQDdvEPUw4oESEgk3o0U+vOUt/WcoIfWwrbxZnbVqg5BIp/NsPhX/v3ThqwApObJFM3lCIQm9kdaUD7fbZwcalY/eguMzgK18Ar6yS/9RzxrTejpknK4itrxyG5EcDps/FeC/7sv77prMnj4nQTYAMe6SHFQL+2H0fk55YLGC15C5VJdtzIovj+7tZnL4gLFdKUZBNiCPkdHtWswO/d+KQrM= jwseo@desktop
2. 서버에 내 컴퓨터의 ssh key 등록하기
위에서 복사한 공개키를 서버에 등록하는 과정이다.
(1) aistages 홈페이지에서 서버 정보를 볼 수 있는 곳으로 간다.
(2) 노트북 연결 버튼을 클릭한다. (아래 그림의 파란색 버튼)
(3) Jupyter Lab이 열리면, Other 아래에 있는 Terminal을 클릭해 터미널을 연다.
(4) 명령어로 공개키를 서버에 등록한다.
⚠️여기서 쌍따옴표로 묶은 공개키 부분을 각자 자신의 공개키로 변경해야 합니다.
echo "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDHIT+Haat2PKLzsEOw/oreqYeqfC9npcpdQDTLTr0O/7AAd9aSVL9RX8DCdpFE4oqNu9JJBHjMa2tpNN+TPfDXrZbA6D66lPquJLWMpAofpNvuCwwkDAaXvznnaKfiH+ZY4d7LQvu1vt6Pia5BRiiDPRD+pjAVDgjNLBGP73XwUMeQLpQjzqNTV20PdjBqmSbKcD2f5pQRPNMhtyRjQ6n49+jFxEfUlGFUKT3iKRnxkr4x9VZ94hvad09PU7dlv0qcfF9xAJrXKL3rsNl25Ls67HfxO1oSaBjlZS5I5IlOQDdvEPUw4oESEgk3o0U+vOUt/WcoIfWwrbxZnbVqg5BIp/NsPhX/v3ThqwApObJFM3lCIQm9kdaUD7fbZwcalY/eguMzgK18Ar6yS/9RzxrTejpknK4itrxyG5EcDps/FeC/7sv77prMnj4nQTYAMe6SHFQL+2H0fk55YLGC15C5VJdtzIovj+7tZnL4gLFdKUZBNiCPkdHtWswO/d+KQrM= jwseo@desktop" >> /root/.ssh/authorized_keys
(5) cat /root/.ssh/authorized_keys 명령어로 공개키가 등록되었는지 확인한다.
첫 번째 줄의 공개키는 서버를 생성할 때 다운로드되었던 key 파일의 공개키이며, 두 번째 줄에 내 컴퓨터의 공개키가 있는 것을 볼 수 있다.
root@b49c5e196e7a:~# cat /root/.ssh/authorized_keys
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAgQCsCP9oFaPMzVMpyQ/3bGZWJegsAiWYSMLtNVzlkeiV0Gg23pdySWHGQMD1YV8pjFnCpU3BlCNE2b+i7C7gVLAvSGu5vxUKmWMEmK5sNlWOz06GlncpF1VKWTOsFI4HafABclPWWC4EXfs2p1su0jL0XNr5AcMHfadEV+YTFxmqdQ==
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDHIT+Haat2PKLzsEOw/oreqYeqfC9npcpdQDTLTr0O/7AAd9aSVL9RX8DCdpFE4oqNu9JJBHjMa2tpNN+TPfDXrZbA6D66lPquJLWMpAofpNvuCwwkDAaXvznnaKfiH+ZY4d7LQvu1vt6Pia5BRiiDPRD+pjAVDgjNLBGP73XwUMeQLpQjzqNTV20PdjBqmSbKcD2f5pQRPNMhtyRjQ6n49+jFxEfUlGFUKT3iKRnxkr4x9VZ94hvad09PU7dlv0qcfF9xAJrXKL3rsNl25Ls67HfxO1oSaBjlZS5I5IlOQDdvEPUw4oESEgk3o0U+vOUt/WcoIfWwrbxZnbVqg5BIp/NsPhX/v3ThqwApObJFM3lCIQm9kdaUD7fbZwcalY/eguMzgK18Ar6yS/9RzxrTejpknK4itrxyG5EcDps/FeC/7sv77prMnj4nQTYAMe6SHFQL+2H0fk55YLGC15C5VJdtzIovj+7tZnL4gLFdKUZBNiCPkdHtWswO/d+KQrM= jwseo@desktop
여기까지 했다면,
이제 각자의 컴퓨터에서 터미널을 열고 ssh 서버IP -p 서버Port 명령어를 통해 접속해보자.
aistages 노트북 연결 밑에 있는 명령어에서 -i ./key 부분을 빼면 된다.
아래와 같이 접속된다면 성공!
C:\Users\jwseo>ssh root@118.67.143.135 -p 2230
Welcome to Ubuntu 18.04.5 LTS (GNU/Linux 4.4.0-59-generic x86_64)
* Documentation: https://help.ubuntu.com
* Management: https://landscape.canonical.com
* Support: https://ubuntu.com/advantage
This system has been minimized by removing packages and content that are
not required on a system that users do not log into.
To restore this content, you can run the 'unminimize' command.
Last login: Mon Nov 14 04:24:47 2022 from 1.239.94.21
root@b49c5e196e7a:~#