0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

CentOS8.2に秘密鍵・公開鍵を作成してVSCodeでSSH接続する

Last updated at Posted at 2020-11-03

##はじめに
今までAWSのサーバーにSSH接続していましたが、ローカル開発環境でCentOSを動かしたところ、鍵の作成だったり色々必要なのでメモしました。

##環境
サーバー側 CentOS8.2
クライアント側 Windows10
(SSHクライアントソフト VSCode)

##前提
・VSCodeにRemote-SSHがインストールされていること
 参考:VSCode の Remote - SSH 機能を使って EC2 上で開発する
・サーバーにtarがインストールされていること
 ※SSH接続の際に、アーカイブを展開する必要があるようです。インストールはyum install -y tarでできます。
・SSHサーバーのルートログインが許可されていること
 ※推奨されませんが、今回はテストのためrootでログインしています。

##大きな流れ
①サーバー側で秘密鍵・公開鍵を作成
②秘密鍵をクライアント側にアップロード
③VSCodeでサーバーにSSH接続

##①サーバー側で秘密鍵・公開鍵を作成
秘密鍵・公開鍵の作成は仕組み的にはサーバー側、クライアント側「どちらで実行しても良い」そうですが、クライアント側で作成した公開鍵をサーバー側に転送するほうが一般的のようです。今回は、Linuxでの鍵作成をしたかったのでサーバー側(CentOS)で作成します。

秘密鍵・公開鍵を作成
# ssh-keygen -t RSA -b 4096
Generating public/private RSA key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Enter passphrase (empty for no passphrase): 
Enter same passphrase again:

ssh-keygenは秘密鍵と公開鍵を作成するコマンドです。
書式 ssh-keygen -t 暗号方式 -b ビット数
オプション -t 暗号方式を指定
      -b ビット数を指定

-fオプションで作成場所を指定していない場合、/root/.ssh/id_rsaに保存してよいか聞かれるのでENTERを押します。
秘密鍵に設定するパスフレーズの入力を求められます、なしでいいのでそのままEnterを押します。

作成完了
# ssh-keygen -t RSA -b 4096
Your identification has been saved in /root/.ssh/id_rsa.  
Your public key has been saved in /root/.ssh/id_rsa.pub.  
The key fingerprint is:  
SHA256:7YG9R04q702Nje8GSOEH7kdrgrsgrsgLYbTqNTbWvU root@localhost.localdomain  
The key's randomart image is:  
+---[RSA 4096]----+  
|                 |  
|  .+ .. . o      |  
| .+.=..+ o o     |  
|.. o++. o++ .    |  
|.  ooo. SE+oo    |  
| o .+o   .oB.=   |  
|  +o.   . + *.o  |  
|   .o    o + ..  |  
|  .. .   .o .oo  |  
+----[SHA256]-----+
~/.ssh/に鍵が作成されていることを確認
# ls -al ~/.ssh/
-rw-------. 1 root root 3389 11月  3 01:08 id_rsa 
-rw-r--r--. 1 root root  752 11月  3 01:08 id_rsa.pub

※.pubと末尾に記載されている方が公開鍵です。(publicの略)

公開鍵のファイル名をauthorized_keysに修正します。

公開鍵のファイル名をauthorized_keysに修正
# mv id_rsa.pub authorized_keys

これで公開鍵と秘密鍵の生成は完了です。
次に秘密鍵をクライアント側に移動させます。

##②秘密鍵をクライアント側にアップロード
scpコマンドを使ってもよいのですが、今回はTeratermの機能を利用してクライアント側に移動させました。
File→SSH_SCP
Fromに/root/.ssh/id_rsa
Toに任意のWindowsフォルダ
 参考:Teratermでコマンドを使わず簡単にファイル転送する方法

##④VSCodeでサーバーにSSH接続
VSCodeの左ペインにモニターのようなアイコンがあるのでクリック
リモートエクスプローラーが開くのでSSH TARGETSの右側の+を押下
コマンド入力画面が開くので、以下を入力
ssh -l root -i "Windowsフォルダ内の秘密鍵のパス" SSHサーバーのホスト名もしくはIPアドレス
Enterを押すと接続完了です。

SSHはsshプロトコルを用いて別ホストに接続するコマンドです。
書式 ssh オプション ホスト名
オプション -l ユーザーを指定
      -i 秘密鍵を指定

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?