🐣 【GCE】SSH接続できないときPermission denied (publickey)メモ
作成日: 2021/05/16
0

##前提
下記のコマンドでSSHの公開鍵と秘密鍵を作成(メールアドレスは仮)

$ ssh-keygen -C "abcd@qiita.co.jp"

-Cはコメント指定。公開鍵のコメント部分を任意の内容に設定できる。
公開鍵の末尾(コメント部分)がabcd@qiita.co.jpになる

コメント指定せず$ ssh-keygenした場合、デフォルトでは 操作端末のユーザ名@localhostを公開鍵のコメントに書いてくれる機能がある

  1. そもそもGCEはWebUI上で公開鍵を登録すると、それに対応するLinuxユーザを作ってその公開鍵として登録してくれるという機能がある
  2. 公開鍵をGCEに登録すると公開鍵のコメント(最後の半角スペース以降に書いてある文字列)を参照する
    それがfoo@host.name だった場合に foo をLinuxユーザ名として使う(っぽい。経験上そうなってるけどリファレンスにそういう記載があるのを見たことはない)

SSH接続するときの本来のコマンドは

$ ssh Linuxユーザー名@外部IP

Linuxユーザー名を省略して書いた下記のように書いた場合

$ ssh 外部IP

自動でLinuxユーザー名の部分に操作端末のユーザーが当てられて実行される。つまり下記のコマンドが実行される

$ ssh 端末のユーザー名@外部IP

したがって、最初の公開鍵作成のときにコメント追加しなければ
Linuxユーザー名=端末のユーザー名となるため、何も考えなくてもssh接続できる。
一方で公開鍵作成でコメント追加した場合はssh接続時に外部IPの前にLinuxユーザー名を書かなければならない。


2021年1月からプログラミングの勉強開始。 主にJavaScript, Rubyについてメモ を残していきたい。