Openstack에서 VM ssh로 접근하기

Openstack에서 VM에 ssh로 접근하기

network host에서 원하는 VM으로 아래 command를 사용해서 접근

ip netns exec qrouter-<router-id> ssh -l ubuntu <fiexd-ip>

key가 필요한 경우 network host에 pem이 있으면 지정해주면 됨.

key가 내 desktop에 있는 경우에는 ssh-forward를 통해서 내 local machine에 있는 pem을 보내준다. command line에서는 아래 같이

ssh -l centos 192.168.1.100 -A

ssh/config에는 아래와 같이

Host controller
HostName 192.168.1.100
User root
IdentityFile ~/.ssh/id_rsa
ForwardAgent yes

이를 위해서는 ssh-agent가 실행되고 있어야하는데 실행되고 있지 않다면 아래와 같이 실행

eval `ssh-agent -s`
ssh-add

eval을 통해서 실행해야 됨. 이유가 아마도 ssh-agent가 실행되고 이것과 통신하려면 unix socket으로 해야해서 그 socket을 환경변수로 공유하기 위해서..

ssh-add로 pem key를 ssh-agent에 추가해 줌. 인자가 없으면 default로 ~/.ssh/id_rsa 같은 순서로 접근가능

debug가 필요하면 ssh 실행시에 -v로 option주면 verbose mode가 되면서 충분한 정보가 나옴

제대로 ssh forwarding이 되는지 확인하기 위해서는 login 한 host에서 아래와 같이 하면

# echo $SSH_AUTH_SOCK
/tmp/ssh-BjCnCxGgJU/agent.48480

socket path가 출력되면 제대로 되고 있음

이제 network host에서 virtual private network으로 들어가기

# ip netns

References