(O+P)ut

アウトプット



(O+P)ut

エンジニアのアウトプット

【Kubenetes】minikubeにおけるSSH及びSCPの方法と仕組み

スポンサーリンク

はじめに

minikube上の状況を確認したり、ローカルからファイルを配置する時に便利なのがSSH/SCPです。
本記事では「minikube ssh」で何故SSHができるのかというところから掘り下げて説明し、最後に手順を紹介します。

minikube sshでSSHができる仕組み

minikubeが起動している状態で以下コマンドを打てばminikubeにログインできます。

$ minikube ssh

この仕組みとしては.minikubeディレクトリ配下にあるconfigに示されている情報を元にSSHをしています。

"Driver": {
        "IPAddress": "192.168.99.100",
        "MachineName": "minikube",
        "SSHUser": "docker",
        "SSHPort": 60727,
        "SSHKeyPath": "C:\\cygwin64\\home\\XX\\.minikube\\machines\\minikube\\id_rsa",

実際にログインすると上記のid_rsaに対応するid_rsa.pubがminikubeのdockerユーザのauthorized_keysに登録されていることが確認できます。起動時に自動的に登録されているようです。

$ cat /home/docker/.ssh/authorized_keys
ssh-rsa ...

SSHの方法/SCPの方法

よってSSHの方法は以下で

$ ssh -i C:\\cygwin64\\home\\XX\\.minikube\\machines\\minikube\\id_rsa docker@192.168.99.100

SCPの方法は以下です。

$ scp -i C:\\cygwin64\\home\\XX\\.minikube\\machines\\minikube\\id_rsa hoge.txt docker@192.168.99.100:~

秘密の鍵の指定に関しては長いため以下コマンドを利用して

$ minikube ssh-key
C:\cygwin64\home\XX\.minikube\machines\minikube\id_rsa

以下のように短縮することも可能です。

$ ssh -i $(minikube ssh-key) docker@192.168.99.100

注意点

minikubeを再起動すると以下のようにホスト確認でsshに失敗するケースがあります。

IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that a host key has just been changed.
The fingerprint for the ECDSA key sent by the remote host is
XX.
Please contact your system administrator.
Add correct host key in /home/XX/.ssh/known_hosts to get rid of this message.
Offending ECDSA key in /home/XX/.ssh/known_hosts:2
ECDSA host key for 192.168.99.100 has changed and you have requested strict checking.
Host key verification failed.
lost connection

その場合は以下から上記IPの情報を消してあげるとうまくログインできます。

vi ~/.ssh/known_hosts

終わりに

以下コマンドで簡単にログインできるので深く考えることもないですが

$ minikube ssh

流れはUNIX機のSSH認証と同じで、ただそれを省略しているだけということが分かればトラブルシューティング等でも役立つと思います。

以上、ご参考になれば幸いです。