본문 바로가기
CODE/기타

이제 편하게 ssh 접속하자! ssh 접속의 끝장 판

by Nuridal_class 2024. 11. 10.
728x90
728x90

회사에 여러 ip로 서버들이 분산되어 있을 거라고 생각합니다. 뭐 AI 서버 WEB 서버 DB서버 등등..

이때 ssh 로 들어가서 작업을 해주어야 할때가 있는데 매우 간단하지만 포스팅 해보겠습니다.

 

 SSH 연결이란?

Secure SHell의 약자로써 네트워크상의 다른 컴퓨터에 로그인하여 명령을 실행하고
정보를 보고 받을수 있도록 해 주는 통신 프로토콜입니다.
즉, 다른 컴퓨터에 접속해서 내가 사용한다 라고 생각하시면 됩니다.

 

연결 방법

host 112.119.1.65
id nuridal
pw 1234
위에 처럼 가상의 컴퓨터가 존재한다고 생각하고 진행해 보도록 하겠습니다.
연결하는 방법은 매우 간단합니다.
ssh id@host
예시) ssh nuridal@112.119.1.65
위에와 같이 사용하면 pw 입력하라는 창이 뜨고 입력해주시면 끝이 납니다.
너무 간단하죠?

그런데 사용하다 보면 비밀번호도 매번 치기가 너무 귀찮아 지실 텐데
그때 비밀번호 없이 들어가는 방법에 대해서 알아보겠습니다.

 

 1. 비밀번호 없이 연결하기

git Bash에서 진행해주셔야 합니다.
ssh-keygen

ssh-copy-id id@host
password : 

예시)
ssh-copy-id nuridal@112.119.1.65
password : 1234
위에 와 같이 ssh-keygen으로 키쌍(공개키와 개인키)를 생성합니다.
# 어느 경로에 설정한건지 물어보는 코드 (enter 누르면 기본 경로로 설정)
Generating public/private rsa key pair.
Enter file in which to save the key (/home/username/.ssh/id_rsa):

# 비밀번호 설정 (host 컴퓨터의 비밀번호 입력)
Enter passphrase (empty for no passphrase):

# 정상적으로 되면 아래와 같이 나온다
Your identification has been saved in /home/username/.ssh/id_rsa.
Your public key has been saved in /home/username/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx username@hostname
The key's randomart image is:
+---[RSA 2048]----+
|                 |
|                 |
|        . .      |
|         o o     |
|        S . o    |
|       o = o o   |
|        o o + o  |
|       . = + +   |
|        oEo*+=.  |
+----[SHA256]-----+​

다음에는 ssh-copy-id 명령어로 공개키를 host 서버에 복사하여
ssh 접속 시에 비밀번호 인증 없이도 인증이 가능하게 해줍니다.
# 서버의 연결을 신뢰할 것인지 물어보는 문구 yes 해주면 됩니다
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/home/username/.ssh/id_rsa.pub"
The authenticity of host '112.119.1.65 (112.119.1.65)' can't be established.
ECDSA key fingerprint is SHA256:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.
Are you sure you want to continue connecting (yes/no)?

# 한번 더 비밀번호 입력해줍니다
nuridal@112.119.1.65's password:

# host 서버로 잘 복사가 되었다는 문구입니다
Number of key(s) added: 1

Now try logging into the machine, with:   "ssh 'nuridal@112.119.1.65'"
and check to make sure that only the key(s) you wanted were added.​


그러면 이제 ssh nuridal@112.119.1.65 하면 비밀번호 없이 잘 입력이 될 것입니다.
그런데 이젠 이렇게 치는 것 마저 귀찬다! 난 그냥 ssh nu만 쳐도 되었으면 좋겠어 하면 이것도 방법이 있습니다.

 

 2. ssh 별칭으로 연결하기

방법은 매우 간단합니다.
C:\Users\nuridal(사용자명)으로 가봐서 숨겨진 파일까지 같이 보면
.ssh 라는 폴더가 보일 것입니다. 이 폴더에서 추가만 해주면 되는데요.
vi나 nano같은 텍스트 에디터로 vi config 명령어로 파일을 하나 만들어 줍니다.
다음에 에디터를 사용하실 줄 아시면 바로 입력하시고 아니면 해당 경로로 가서 메모장으로 켜줘서 진행하시면 됩니다.
Host nu
    HostName 112.119.1.65
    User nuridal
    Port 22

... 추가입력 가능​


위에 처럼 입력해주고 저장해준 뒤에는 ssh nu 라고 하면 접속이 되는것을 볼 수 있습니다.
그런데!!!! 난 저것마저 귀찮다 nu 라고만 써도 접속이 되었으면 좋겠어 하시면 또 방법이 있습니다.

 

 3. ssh 명령어 없이 별칭으로만 연결하기

C:\Windows\System32\WindowsPowerShell\v1.0 경로에서 profile.ps1 파일을 찾아줍니다.(경로는 다를수도 있습니다)
마찬가지로 메모장으로 켜서 추가를 해주면 되는데요
#  Copyright (c) Microsoft Corporation.  All rights reserved.
#  
# THIS SAMPLE CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND,
# WHETHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
# WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE.
# IF THIS CODE AND INFORMATION IS MODIFIED, THE ENTIRE RISK OF USE OR RESULTS IN
# CONNECTION WITH THE USE OF THIS CODE AND INFORMATION REMAINS WITH THE USER.

# 파일위치: C:\Windows\System32\WindowsPowerShell\v1.0

function ssh2($server, $user='root') {
  ssh $user@112.119.1$server
}

function nu {
  ssh nuridal@112.119.1.65
}​

위에 문구 처럼 function nu 함수 안에 ssh 주소를 적어서 저장해주시면 끝납니다!

그렇다면 이제 nu 라고만 쳐도 해당 컴퓨터에 접속이 되는 것을 확인하 실 수 있습니다!!!.

이번에는 회사에 어려 컴퓨터에 접속해서 개발해야 할때

귀찮이즘을 덜어주는 ssh 접속 방법에 대해서 알아보았습니다.

조금이 나마 도움이 되셨기를 바라면서!

728x90
300x250