메뉴 닫기

ssh포트가 여러개일때 관리자는 기억할 수 있을까?

서버를 운영하다보면 보안상의 이유로 각서버 마다 ssh 포트를 달리 사용할때가 많다.
많다 보면 외우기도 어렵고….어디에 써둘 수도 없다.

이에 각서버의 ssh 포트를 달리 했을때 관리서버에서 각서버에 ssh 접속시 포트 지정없이 사용하는 법을 다루어 보겠다.
관리서버는 보안이 잘되어 있다는 가정하에 진행하길 바란다.

먼저 관리서버를 A 라고 지칭 하고 관리 노드들은 B,C,D 라고 지칭하자.

각각의 관리노드 서버들의 ssh 포트는 1111,2222,3333이라고 정의.

[설정]

A 서버에서 실행.

root@~:]# ssh-keygen

Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Created directory ‘/root/.ssh’.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:oUAoDf8sd6f87ad6fg987ad6g897ad6g root@localhost
The key’s randomart image is:
+—[RSA 2048]—–
|^@AO*o . |
|O%aAo.+ . |
|++.*oo o. |
| ..=o*. . |
| +.A.oS |
| . + |
| |
| |
| |
+—-[SHA256]—–+

root@~:]# ssh-copy-id id-b@B -p 1111

/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: “/root/.ssh/id_rsa.pub”
The authenticity of host ‘[localhost2]:1111 ([111.111.111.111]:1111)’ can’t be established.
ECDSA key fingerprint is SHA256:+L7+9as87f98s7fg98s7g9d87g09df8g09.
Are you sure you want to continue connecting (yes/no)? yes
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed — if you are prompted now it is to install the new keys
root@localhost2’s password:

Number of key(s) added: 1

Now try logging into the machine, with: “ssh -p ‘1111’ ‘root@localhost2′”
and check to make sure that only the key(s) you wanted were added.

..
..
..

[C,D 동일하게 진행]

..
..

B 의 ssh port=1111
C 의 ssh port=2222
D 의 ssh port=3333

만약 ssh 관리 대상이 수십개라면 어찌 기억하겠는가..

관리서버라면 보안에 신경을 많이 썼을 것이다 관리서버에 해당 호스트의 포트를 관리하면 편리할 것이다.

방법은 아래와 같다.

ssh-keygen 진행으로 인해 ~/.ssh 폴더가 생성된 것을 볼 수 있다,

다음을 만들어 주어라.

파일 생성 후 내용 편집

root@~:]#vi ~/.ssh/config

Host B
HostName localhost2
Port 1111
User id-b

Host C
HostName localhost3
Port 2222
User id-c

Host D
HostName localhost4
Port 3333
User id-d

저장

[연결 테스트]

root@~:]# ssh B
root@localhost2~:]#

*위의 연결 테스트 결과로 보듯이 서버의 아이피 포트 혹은 호스트 네임등을 몰라도 해당 서버의 별칭(=HOST)으로
접속된 것을 확인할 수 있다.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 항목은 *(으)로 표시합니다