LoginSignup
0
0

More than 1 year has passed since last update.

エックスサーバーにSSH接続する際のよくあるミス

Last updated at Posted at 2022-12-31

エックスサーバーにSSH接続する際のよくあるミス

初心者である私がつまずいたところをメモしときます。
著者はwslのubuntuを使用しています。
つまずいたところだけメモしようと思ったのですが、せっかくなので鍵の生成から説明する事にしました。
そんなの知っているよ!っていう人は読み飛ばしてください。
自分も初心者なのであしからず…

鍵の準備

まずはLinuxにてssh-keygenコマンドを使い、公開鍵と秘密鍵を生成します。
オプション無しだとデフォルトで3072ビットの鍵が生成されます(2022/12現在)。オプションに関してはここでは詳しく触れません。オプションに関して詳しく知りたい方は、こちらのサイト(@IT)にて詳細に説明されています。

~$ cd ~
~$ ssh-keygen

何やら対話形式で色々聞かれます。全てEnterを押していただいても大丈夫ですが、ここでパスワードの設定なんかもできます。

Generating public/private rsa key pair.
Enter file in which to save the key (C: ~/.ssh/id_rsa): # ファイルの保存場所とファイル名を指定。
Created directory 'C: ~/.ssh'.
Enter passphrase (empty for no passphrase): # 鍵にパスワードを設定。
Enter same passphrase again: # 確認の為、もう一度パスワードを入力。
Your identification has been saved in C: ~/.ssh/id_rsa.
Your public key has been saved in C: ~/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:SuUHWz ... mOao user@host
The key's randomart image is:
+---[RSA 3072]----+
|      .+*=.o=X+. |

...

|                 |
+----[SHA256]-----+

鍵が ~/.ssh に生成されます。
id_rsaが秘密鍵、誰にも教えてはいけません。
id_rsa.pubが公開鍵、これを接続先に設定します。

~$ cd ~/.ssh
~/.ssh$ ls
id_rsa  id_rsa.pub

catコマンドで公開鍵の中身を見てみます。
中身を全てクリップボードにコピーしてください。後で使用します。

~/.ssh$ cat id_rsa.pub
ssh-rsa AAAsedrftgyhujiBAAABgQC4P+sl
...
jiKS3MwAE2drtfgyhue0yh4M= user@host

エックスサーバーに鍵を登録する。

サーバーパネルのSSH設定画面にて状態をONにします。「設定する」をクリックするのを忘れないでください。
ssh設定画面.png
「公開鍵登録・更新」項目を選択し、先ほどクリップボードにコピーしておいた公開鍵をペーストします。「設定する」をクリックして完了。
公開鍵設定.png

Linuxからssh接続 (つまずいたところ)

これでやっとssh接続ができます。ここから初心者の私がつまずいたところです。
linuxからsshコマンドを使い、ssh接続を試みます。以下のような形式でsshコマンド打ち、接続します。
主に3つのオプションを指定しています。

  • -iオプション: 秘密鍵を指定しています。独自にファイル場所を指定した場合は、設定した通りのファイルパスを指定します。
  • -pオプション: ポート番号を指定しています。
  • -lオプション: ログインユーザ名を指定しています。
~$ ssh -i ~/.ssh/id_rsa <サーバー番号>.xserver.jp -p 10022 -l <サーバーID>
例: ssh -i ~/.ssh/id_rsa sv12345.xserver.jp -p 10022 -l xs987654

# 初回の通信で聞かれる。known_hostsに登録される。
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes

間違えるポイント

ここでつまずくポイントを確認していきましょう。

Permission denied # 何故だ! 接続できない!
  • 22番ポートで接続しようとする。
    エックスサーバーではセキュリティの為、通常の22番ポートではなく、デフォルトでは10022番ポートで通信を行います。-pオプションで10022番ポートを指定してください。
    ✕ ssh -i ~/.ssh/id_rsa sv12345.xserver.jp -p 22 -l xs987654
    〇 ssh -i ~/.ssh/id_rsa sv12345.xserver.jp -p 10022 -l xs987654
  • ユーザ名を指定していない。
    -lオプションでユーザ名を指定しないとPermission deniedされます。ユーザ名はサーバーIDです。
    ✕ ssh -i ~/.ssh/id_rsa sv12345.xserver.jp -p 10022
    〇 ssh -i ~/.ssh/id_rsa sv12345.xserver.jp -p 10022 -l xs987654
  • ユーザ名が間違っている。
    エックスサーバーにおけるユーザ名はxsから始まるサーバーIDです。svから始まるのはサーバー番号です。サーバーIDとサーバー番号は別物です。
    ✕ ssh -i ~/.ssh/id_rsa sv12345.xserver.jp -p 10022 -l sv12345
    〇 ssh -i ~/.ssh/id_rsa sv12345.xserver.jp -p 10022 -l xs987654
  • ホスト名が間違っている。
    サーバーパネルからホスト名を確認してください。ホスト名に使われているのはsvから始まるサーバー番号です、サーバーIDではありません。
    ✕ ssh -i ~/.ssh/id_rsa xs987654.xserver.jp -p 10022 -l sv12345
    〇 ssh -i ~/.ssh/id_rsa sv12345.xserver.jp -p 10022 -l xs987654

サーバーIDとサーバー番号は別物!気を付けよう!

サーバーパネルからよく確認するように…
image.png

何かミスがございましたらコメントください。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0