マル開発日記

マルAndroidデベロッパ

MacでGCEにsshログイン

 GCE(Google Compute Engine)の仮想マシンsshログインするとき、"ブラウザウィンドウで開く"でも良いと思いますが、自分のMac Bookでは全画面表示になってしまいすげぇ見辛かったのでターミナルからsshログインしてみました(Windowsで試した時は全画面じゃなくて良かったんですが)。

 Macでターミナルを立ち上げ、ssh-keygenで鍵を作ります。やり方はググればいっぱい出てくる。

 作ったsshの公開鍵はサーバ側の.ssh/authorized_keysに追記するのではなく、Compute Engineのダッシュボードからメタデータに移動して登録するみたいです(GitHubの時と同じような感じ)。authorized_keysを自分で触ろうとすると、なぜかいつの間にかファイルが消えてしまったりします(多分セキュリティ対策?)

 鍵の用意できたらMacのターミナルからログインしやすくするために、(ローカルの).ssh/configのファイルでHOSTを追加しておきます。


HOST garigari <- 適当な愛称をつける
HOSTNAME xxx.xxx.xxx.xxx <- GCEの外部IP
USER hogehoge <- サーバ側のユーザ名(だと思う)
IDENTITYFILE ~/.ssh/id_rsa_xxxxxxx <- 作った秘密鍵のファイル場所を指定


そうすると、macのターミナル上から

ssh yaseyase@garigari

のような感じでログインできます、ちなみにyaseyaseは公開鍵のテキストの中身に入ってるユーザ名じゃないといけないみたいです。
(ちょっと試行錯誤しました。。)

ブラウザウィンドウから接続すると毎回自動で鍵を作ってるようでかなり安全な感じがしますが、セキュリティより利便性を優先するなら使い慣れたターミナルでログインするのが良いかな思います。

補足:
その他の接続の方法としてgcloudってやつがあり、こっちのほうが良さそうだけど、自分はanaconda3をインストールしたときpythonのパスが3系になってしまって、gcloudは2系じゃないとだめなようなので、とりあえず普通のsshログインを試してみた次第です。

原因がわかりました。多分。GCEは公開鍵内に書かれたユーザidをみて、それから勝手?にuseraddし、そのユーザの.sshに公開鍵を置くようですね。なので、vpsにログインするような感じではうまくいかないみたいです。ウボァー