[네트워크] ssh 암호 없이 사용하기

ssh을 암호 없이 사용하는 방법에 대한 간단한 요령입니다. 안선일이 팀장

얘기로는 .rhosts만 설정하면 된다고 했는데 그 방법은 안되는 경우도

있고 ssh의 표준 방식이 아니기 때문에 제대로 하려면 얼마나 복잡한가를

보여드리겠습니다.

o 필요한 것들

  ssh, ssh-keygen, ssh-agent, ssh-add

o 방법

1. 우선 ssh-keygen을 사용하여 자신의 public/private key pair를 만든다.

/home/djshin > ssh-keygen

Generating RSA keys:  ..ooooooO..ooooooO

Key generation complete.

Enter file in which to save the key (/home/djshin/.ssh/identity): (그냥

엔터)

Enter passphrase (empty for no passphrase): (어쩌구 저쩌구)

Enter same passphrase again: (위의 어쩌구 반복)

Your identification has been saved in /home/djshin/.ssh/identity.

Your public key has been saved in /home/djshin/.ssh/identity.pub.

The key fingerprint is:

4c:4e:92:fd:7b:f3:5b:dd:6d:00:c9:09:85:38:7e:b8 djshin@winter

이렇게 하면 ~/.ssh/identity.pub 이라는 public key가 생긴다.

2. ssh을 할 서버의 계정 밑에 .ssh/authorized_keys라는 파일을 만들어 위의

identity.pub의 내용을 추가한다. 주의할 것은 autorized_keys의 permission이

600 이어야 한다는 점이다.

3. ssh client 기계에서 ssh-agent를 수행한다. ssh-agent는 ssh session

negotiation에서

client의 identity 정보를 서버에 넘겨주는 역할을 한다.

X를 사용하는 경우 X를 띄우기 전에 수행하거나 .xsession에 추가하는 것이 좋다.

ssh-agent는 환경변수를 설정하는 명령문들을 출력하는데 shell의 종류에 맞도록

하기 위해

다음과 같이 수행한다.

[C shell의 경우]

eval `ssh-agent -c`

[born shell의 경우]

eval `ssh-agent -s`

심심풀이로 그냥 “ssh-agent -c”를 수행해보면 다음과 같이 출력된다(괄호 부분

빼고)

setenv SSH_AUTH_SOCK /tmp/ssh-ITa22834/agent.22834; (-> stdout)

setenv SSH_AGENT_PID 22835; (-> stdout)

echo Agent pid 22835; (-> stderr)

그러니 eval backtick(`)을 쓰면 처음 두 라인만 evaluation이 되어 환경 변수에

저장이 되겠다.

4. ssh-add를 수행하고 pass phrase를 입력한다. ssh-add는 ssh-agent에 사용자의

identity를 등록시키는 일을 한다.

5. 이제 password 없이도 ssh을 쓸 수 있당.

이와 같은 방식의 no password 인증은 .rhosts를 사용하는 것보다 안전한 인증

기법을

제공한다. 이는 client 기계에 대한 정보 + pass phrase로 검증된 identity가

인증에 사용되기

때문이다.

=======================================

ssh 로 패스워드 인증 없이 들어가기

A 호스트의 root 계정에서

# ssh-keygen -t rsa

# vi /root/.ssh/id_rsa.pub

—————————————————————–

ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAIEAzpazPYmbyoKWWw

ZMSFiSxJIgQnc+0UlCtrceUla9kvN69jJrhlGHX3ar4sjjNRUJq

3+Hbb/B2XcwiGWvpu270WR4xUZqCxjDvlEDNUtL+a6HeMz

heKZMNE0z0rRDjdUmfQQVSClLQY3bXDlo9meDbDIWENhJ

z0XjRW/10R7LACU= root@otn2

—————————————————————–

를 복사하여 B호스트에서..

# ssh-keygen -t rsa

# vi /root/vi .ssh/authorized_keys2

—————————————————————–

붙여준다.

—————————————————————–

그런후 A 에서 B로 접속하면 된다.

서진우

서진우

슈퍼컴퓨팅 전문 기업 클루닉스/ 상무(기술이사)/ 정보시스템감리사/ 시스존 블로그 운영자

You may also like...

페이스북/트위트/구글 계정으로 댓글 가능합니다.