본문으로 건너뛰기
🛠️ToolsShed

SSH Config 생성기

여러 호스트에 대한 ~/.ssh/config 항목을 생성합니다.

호스트 항목 1
~/.ssh/config
Host myserver
  HostName 192.168.1.100
  User ubuntu
  IdentityFile ~/.ssh/id_rsa
  ServerAliveInterval 60

사용 방법:

  1. 출력 결과를 ~/.ssh/config에 저장
  2. 실행: chmod 600 ~/.ssh/config
  3. 연결: ssh <HostAlias>

이 도구 소개

SSH Config Generator는 여러 SSH 연결을 관리하는 과정을 간소화하여 ~/.ssh/config 항목을 프로그래밍 방식으로 생성합니다. SSH 설정 파일을 수동으로 편집하고 각 서버의 호스트 별칭, IP 주소, 키 경로를 외우는 대신, 이 도구를 사용하여 구조화된 형식으로 모든 SSH 호스트를 정의하고 몇 초 만에 완전한 설정 파일을 생성할 수 있습니다. 잘 구성된 SSH config를 갖추는 것은 서로 다른 서버에 자주 연결하는 개발자, 시스템 관리자, DevOps 엔지니어에게 필수적입니다.

도구를 사용하려면 호스트명, 포트, 사용자명, 식별 파일 경로 및 기타 SSH 옵션을 포함한 SSH 호스트와 해당 설정을 입력합니다. 생성기는 이러한 항목들을 SSH config 구문에 따라 자동으로 형식화하고 출력을 표시합니다. 그런 다음 이를 ~/.ssh/config 파일에 직접 복사하거나 기존 구성에 추가할 수 있습니다. 이 방식은 구문 오류를 제거하고 관리하는 서버 수에 관계없이 모든 호스트 정의에서 일관된 형식을 보장합니다.

자주 묻는 질문

코드 구현

import paramiko

# SSH with config file support using Paramiko
config = paramiko.SSHConfig()
with open('/home/user/.ssh/config') as f:
    config.parse(f)

host_config = config.lookup('myserver')
print(host_config)
# {'hostname': '192.168.1.100', 'user': 'ubuntu', 'port': '22'}

# Connect using resolved config
client = paramiko.SSHClient()
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
client.connect(
    hostname=host_config['hostname'],
    username=host_config.get('user', 'root'),
    port=int(host_config.get('port', 22)),
    key_filename=host_config.get('identityfile', [None])[0]
)
stdin, stdout, stderr = client.exec_command('uptime')
print(stdout.read().decode())
client.close()

Comments & Feedback

Comments are powered by Giscus. Sign in with GitHub to leave a comment.