85633


この質問を聞いた時点、SSH認証の理解がほぼありませんでした（手順が説明されている記事が多くありますが、何の為にそれぞれの行動を起こすべきか、説明が非常にするないです）。この質問の対象ＶＰＳは「お名前.com」ですから、「お名前.comのサポートに問い合わせすればいい」と推薦されるかもしれませんが、こちらは基礎知識の方の質問です。つまり、プロバイダーを関係なく、まず私は何をしているかと何故これをしているか、深く理解する事が必要です。

## 理解と他に何の為に知りたい

Tera Termでのサインインがうまくいきますが、ターミナルではいきません。  
しかしターミナル（一般方法）での接続が必要になる事もあります。  
私の場合は[gulp-rsync](https://www.npmjs.com/package/gulp-rsync)を使おうと思い、

[code]

    gulp.task('deploy', function() {
      gulp.src('build/**')
        .pipe(rsync({
          root: 'build/',
          hostname: 'example.com' // 問題無くＳＳＨキーでサインするにはどうすれば？
        }));
    });
    
[/code]

ターミナルで接続出来ない事には、こちらもうまくいかないはずです。

## 実験データ

実験的に知った事を論述します。

### 一般ターミナルでの接続試し

「お名前.com」で[VPS（KVM）](https://cart.onamae.com/server/order/kvm?partner_code=onamaenavi)を購入した時点、`ssh
root@XXX.X.XXX.X`の様にターミナルサインインしてみますと、「Connection timed out」というエラーが発生します。

[![画像の説明をここに入力](https://i.stack.imgur.com/WRdop.png)](https://i.stack.imgur.com/WRdop.png)

他の記事から習った限り、この方法は最初からうまくいくべきです。

代わりに「SSH軽由シリアルコンソール」に記載された接続先

[![画像の説明をここに入力](https://i.stack.imgur.com/vMAwd.png)](https://i.stack.imgur.com/vMAwd.png)

で`ssh root@console-sshXXXX.myvps.jp`の様に接続してみますと`Permission denied
(publickey)`というエラーが発生します。

[![画像の説明をここに入力](https://i.stack.imgur.com/Q2iP9.png)](https://i.stack.imgur.com/Q2iP9.png)

「サーバー詳細」のところに「SSH Private Keyをダウンロード」というボタンがあり、ダウンロードされたファイルは「.pem」拡張子。

[![画像の説明をここに入力](https://i.stack.imgur.com/R26gI.png)](https://i.stack.imgur.com/R26gI.png)

それだけを言いますと、驚いている方がいます。

> **パブリックキー** をサーバーにアップロードしなければいけないのは貴方だ。 **プライベートキー**
> の方は、貴方以外誰も知る訳にはいけません。セキュリティ違反だから。

という様に説明されました。ここで、「もしかして、私が言っているキーと相手が意味しているキーが違いますか？もしかして、VPSとSSHで接続するためのキーと、接続してからUbuntu等にサインインする為のキーが別々？」という疑いが発生しました。

いずれにせよ、上記のキーをダウンロードしても、ターミナルでサインイン出来るようにはなりません。

### TeraTermでの接続試し

ターミナルでの接続がうまくいかないが、TeraTermでの接続方法は一つではないと発見しました。

一つ目の方法は、

  * **ホスト** として先ほどの「console-sshXXXX.myvps.jp」を指定
  * **ポート** は規定のままにします(22)
  * ユーザー名として「サーバー詳細」のところに記載された「共通サーバー接続ID」を指定

[![画像の説明をここに入力](https://i.stack.imgur.com/2etmb.png)](https://i.stack.imgur.com/2etmb.png)

正しいキーファイルを指定すれば、最後にサインインしたOSのアカウントに自動サインインされます（最初からrootしかありません）。

[![画像の説明をここに入力](https://i.stack.imgur.com/IVAWI.png)](https://i.stack.imgur.com/IVAWI.png)

他の方法は

  * ホストはIPアドレスのみ
  * ポートは10022（[この説明書通り](https://www.onamae-server.com/guide/vps/p/9)）
  * ユーザ名は`root`のみ
  * キーは同じ

何故二つともいきますか、理解できません。

最後に分かりやすく聞きますと、上記手順・キーは、[この記事](https://www.digitalocean.com/community/tutorials/how-
to-set-up-ssh-keys-on-ubuntu-20-04-ja)にある手順・キーに関係ありますか？


CC BY-SA 4.0
2022-01-10T03:47:03.480
85594
2022-01-12T03:38:17.697
2022-01-10T04:02:40.307
16876
16876
question
ubuntu ssh teraterm
VPSとSSHで接続するためのキーと、接続してからUbuntu等にサインインする為のキーが別々ですか？


お名前.comのVPSは少し複雑な構成です。

  * 契約したVPSのSSHサーバに接続する
  * 契約したVPSのシリアルコンソールに接続されているお名前.comが用意したSSHサーバに接続する

の2つの接続があります。

# VPSのSSHサーバ

自分のサーバに割り当てられたIPアドレスに対して接続しますが、ポートが10022になっているようです。SSHデフォルトの22で接続しようとすると
Connection refusedまたはtimeoutになるでしょう。

# VPSのシリアルコンソールに接続されているSSHサーバ

console-sshXXXX.myvps.jpに「共通サーバー接続ID」を指定して接続すると、VPSのシリアルコンソールに接続されます。

いずれにしても、ダウンロードしたSSH Private Keyを使用するようです。

この点を理解した上でもう一度ヘルプなどを読み直してみてください。

CLIのsshクライアントは鍵の指定が難しいのでまずはTeraterm/Putty/rloginなどGUIのクライアントで試してください。

# SSH Private Keyをダウンロードすることについて

認識されているとおり、本来SSH Private
Keyをどこからかローカルにダウンロードするのは良くないことです。とはいっても、リモートでサーバをセットアップしてそこに接続する、という仕組み上、仕方がないです。

サービスによっては

  * 公開鍵認証を使わないで接続
  * ユーザーが指定した公開鍵を組みこんだ状態でサーバをセットアップ

という方式にしているところもありますが、それぞれメリット・デメリットがあるので、秘密鍵をダウンロードさせる方式が単純に誤りともいえません。

いずれにしてもサーバにログインできるようになったら安全に作成された鍵を使うように変更してデフォルトの鍵を使うのはやめましょう。


CC BY-SA 4.0
2022-01-12T03:38:17.697
85633
2022-01-12T03:38:17.697
5793
85594
answer