요근래 서버 관리가 보다 쉬워지고, 개인이 서버를 갖는 것이 매우 친숙해지는 과도기 같습니다.
이제 곧 너도 나도 서로의 서버를 가지는 것이 기본이고, 일상이 되겠죠.
전부 AWS로 인해 시작된 일인데... 이 AWS가 처음 기획을 할 때 매우 비상한 방법을 써서 자신들의 Risk를 최소화 한 것이 아닌가 라고 생각이 듭니다.
물론, 본인들의 Risk의 축소 측면에서 말입니다.
안되긴 뭐가 안돼.
서버상에서 유저들에게 발급해주는 것이 아무래도 사용자들의 여러 비밀번호를 관리하는 것보다 훨씬 적은 Risk를 그리고 적은 데이터를 가지니 말입니다.
물론 할 줄 아는 사람들은 이 부분은 알아서 잘 헤쳐나가겠지만, 이번에 개인 서버를 구성하며...
다른 사람들은 이런 부분이 힘들 수도 있겠구나 싶어 글을 작성해 봅니다.
부디 누군가에게 큰 도움이 되기를...
ssh-key로 접속하기
자, 일단 본인들이 받은 키로 접근을 해봅시다.
보통 받은 키들은 .pem 파일이실 겁니다.
저희는 putty로 접근해볼 것이기 때문에 일단, putty를 다운받아주시기 바랍니다.
사진 클릭시 이동합니다. (광고 없음)
그럼 putty 파일이 설치되는데, 우린 그 중 puttygen 이라는 녀석을 살펴볼 겁니다.
이 puttygen을 열면 아래와 같이 켜지는데,
여기서 불러오기를 눌러 여러분의 .pem 파일을 불러오시면됩니다.
이 과정에서 분명히 .pem 파일이 안보이실텐데, 걱정하실 필요 없이 모든 파일로 놓고 불러오시기 바랍니다.
알림으로 안내된 것처럼 개인키 저장을 누르시면, 이제 .ppk 파일로 저장이되고, 저장된 .ppk를 이용해 putty에 접속이 가능한데... 또 설정이 필요하겠죠? 그럼 바로 putty를 켜봅시다.
일단, 호스트 이름에 접근 IP 또는 url을 입력하고, 포트를 설정해줍니다. 해당 화면의 모든 내용은 클라우드 서비스 내에 고지가 되어있을 것입니다.
이어서 우리는 .ppk 를 어떻게 써야하는지 알아야 하는데...
사진처럼 타고 들어가면, 인증 개인키 파일 이라고 친절하게 되어있습니다.
이것을 찾기 눌러서 본인의 키를 지정해준 뒤!
가장 중요합니다!
별 것 아니지만, 이 내용(.ppk 지정)을 이후에도 다시 안하려면 꼭 세션으로 돌아가서 저장해줍시다.
그리고 열기를 누르면,
사실 이 화면은 저런거 설정하지 않아도 뜹니다만...
계정을 입력하면 .ppk가 설정되지 않았다며 로그인이 불가능합니다.
다만 우리는 모두 설정했죠!?
이제 .ppk 키가 발급된 계정으로 접속하면 비밀번호를 묻지 않고 로그인됩니다.
(잘 따라 진행하셨다면, 정상적으로 로그인이 되셨을 겁니다!)
참고로 호스팅 업체, 설치된 OS에 따라 IP 제한도 있을 수 있고, 기본 계정(예, ubuntu, centos 등등)이 다를 수 도 있습니다.
안되신다면, 호스팅 업체 사이트를 잘 둘러보시기 바랍니다!
자, 여기까지가 ssh-key를 이용한 접속이었는데, 여러분이 필요한 내용은 이제부터 시작이죠?
사실 위와 같이 할 수 있는 환경이면 얼마나 좋아요?
그런데 실제 사용에 있어서는 외출 중일 때 사고가 났을 때 대처하려면 저 ssh-key가 없다면, 로그인이 불가능하겠지요?
그래서 우리는 보안적이슈와는 거리가 멀고, 보다 관리하기 편리하도록 비밀번호를 통해서도 접근할 수 있도록 설정할 겁니다.
이 방법을 사용한다고 ssh-key가 안되거나 하지는 않습니다.
그저, 로그인 방법을 1가지 추가하는 셈이지요.
지금부터는 코드를 필요로 하는 부분이 많습니다.
잘 따라와 주시기 바랍니다.
비밀번호로 로그인하기
먼저 우리가 접속하게될 이 곳은 ssh이라는 프로토콜로 이루어진 서버이며, 일반적으로 쉘이라고 합니다.
아래의 명령어들은 쉘 명령어라고 하지요.
이런 어려운 얘기는 각설하고, 처음 putty 로그인이 완료되시면, 호스팅 업체의 서버 기본 세팅에 따라 여러 설명이 나올 수도 있고 마지막에 #로 끝나며, 초록색 막대가 위치하게 됩니다.
해당 초록색 막대에 글씨가 쓰여지는 위치고, 쉘의 기본 명령어에 대한 내용들은 다른 글을 통해 확인하여 주세요.
(현재 제 블로그에는 쉘에 대한 내용이 없습니다. 작성하게 된다면, 링크를 첨부하겠습니다.)
[root@123.456.789.101 ~]#
또한 이 내용은 보시는 바와 같이 root 기준의 안내이며, 일반적으로는 보안관련 문제로 root에 비밀번호를 입력하여 사용하지 않습니다.
다만, 이글을 보고 계시는 여러분은 초보자이고, 개인서버이고, 관리를 위해 이제 막 시작했다는 것을 가정하겠습니다.
가장 먼저 해야할 일은, 비밀번호 설정입니다.
명령어는 passwd 로 아래처럼 현재 로그인되어있는 계정의 비밀번호를 설정하게 됩니다.
[root@123.456.789.101 ~]# passwd
Changing password for user root.
New password:
ssh-key 형태로 접속되는 서버는 보통 비밀번호 입력이 필수가 아니다보니, 최초의 계정에는 별도의 비밀번호가 없는 경우가 많습니다.
아무튼 비밀번호를 정상적으로 입력했다면, 아래와 같이 권한 토큰이 업데이트 되었다는 내용이 출력됩니다.
이 또한 서버세팅에 따라 다르게 보일 수도 있으며, 심지어 한글로 보이기도 합니다.
(한글로 설정하면)
[root@123.456.789.101 ~]# passwd
Changing password for user root.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.
[root@123.456.789.101 ~]#
아무튼 이어서 이제 이 비밀번호를 이용해 접속할 수 있게 서버 내 sshd의 설정을 바꿔야합니다.
일반적으로 데몬이라고 하는 프로세스들로 서버가 살아있는 동안 항시 동작하는 서비스들을 의미합니다.
(사실 더 중요한 내용들도 있으나, 더 알면 힘들어요.)
그래서 우리는 이 데몬의 설정을 변경해줄 필요가 있습니다.
현재는 비밀번호를 입력하지 못하도록 설정이 되어있는 상태이기 때문이지요.
[root@123.456.789.101 ~]#sudo vi /etc/ssh/sshd_config
짤막한 팁으로는 tab 키를 눌러 자동완성기능을 이용하시면, 보다 빠르게 작성하실 수 있습니다.
더불어 ssh_config도 있으니 잘 구분하여, sshd_config를 여셔야 합니다.
# $OpenBSD: sshd_config,v 1.100 2016/08/15 12:32:04 naddy Exp $
# This is the sshd server system-wide configuration file. See
# sshd_config(5) for more information.
# This sshd was compiled with PATH=/usr/local/bin:/usr/bin
# The strategy used for options in the default sshd_config shipped with
# OpenSSH is to specify options with their default value where
# possible, but leave them commented. Uncommented options override the
# default value.
# If you want to change the port on a SELinux system, you have to tell
# SELinux about this change.
# semanage port -a -t ssh_port_t -p tcp #PORTNUMBER
#
#Port 22
#AddressFamily any
#ListenAddress 0.0.0.0
#ListenAddress ::
... 중략 ...
# To disable tunneled clear text passwords, change to no here!
PasswordAuthentication no
#PermitEmptyPasswords no
... 중략 ...
열어보시면 위와 같이 버전 안내와 포트 등의 설정이 주석이 된 채 있는데, 아래로 쭈욱 내리시다보면, PasswordAuthentication 이라는 항목을 보시게 될겁니다.
해당 내용이 패스워드를 묻겠다는 항목으로 yes로 변경해야지만, 로그인시 비밀번호로 로그인이 가능해지는 항목입니다.
그럼 이 항목을 yes로 바꾸고 저장해봅시다.
# To disable tunneled clear text passwords, change to no here!
PasswordAuthentication yes
#PermitEmptyPasswords no
그리고 : (쌍점, 클론)을 눌러 wq를 일력 후 엔터를 눌러, vi 편집기를 종료 하시면 됩니다.
그럼 이제 이 설정이 적용되도록 sshd를 재시작 해야하는데...
미리 말씀드리지만, 모든 데몬은 설정 후 재시작이 필수입니다!
[root@123.456.789.101 ~]# sudo service sshd restart
Redirecting to /bin/systemctl restart sshd.service
참고로 위 명령어는 서버 세팅에 따라 다를 수 있습니다.
때문에 혹시 위 명령어로 진행되지 않는다면, 아래의 명령어로도 실행이가능합니다.
[root@123.456.789.101 ~]# sudo /etc/init.d/ssh restart
여기까지 전부 진행되셨다면, 다시 처음 접속한 화면으로 들어오시되, Key 파일을 넣지 않은 상태로 putty를 켜시기 바랍니다.
이제 계정을 입력하시면,
login as: root
root@123.456.789.101's password:
이라고, 비밀번호를 묻는 안내가 나오며, 여기에 비밀번호를 입력하시면 로그인이 됩니다.
또 긴 글을 여러분께 안내드렸는데, 부디 도움이 되셨으면 좋겠고, 여러분의 문제가 잘 해결되시길 바랍니다.
'개발새발 박스 > ssh' 카테고리의 다른 글
어라? Cannot allocate memory 오류와 함께 설치가 안되요. (1) | 2023.12.24 |
---|