1
1

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.

Windows10でのSSHの設定

Last updated at Posted at 2021-05-12

はじめに

環境

  • ローカルマシン
    • Windows10
    • PowerShell
  • リモートマシン
    • Linux

手順

ローカルマシンでの作業

1. "ssh-keygen"コマンドで4096ビットRSA暗号の公開鍵・秘密鍵を生成。

  • "-t"オプションで暗号の種類を示す。下の例はRSA暗号。
  • "-b"オプションでビット数を示す。下の例は4096ビット。
  • "-C"オプションの後はコメントを示す。メールアドレスなどを書くとよいかも。
ssh-keygen -t rsa -b 4096 -C "[コメント]"

2. パスフレーズの入力を求められる。

Enter file in which to save the key (C:\Users\[Windows10のユーザ名]/.ssh/id_rsa): [Type a passphrase]

3. 再度、パスフレーズの入力を求められる。

  • 2.で入力したパスフレーズを入力
Enter passphrase (empty for no passphrase): [Type a passphrase]

4. 公開鍵と秘密鍵を確認

  • ホームディレクトリ下の.ssh/ディレクトリに移動。
  • .ssh/ディレクトリには先ほど生成した秘密鍵(id_rsa)と公開鍵(id_rsa.pub)がある。
cd ~/.ssh
ls  

5. リモートマシンに公開鍵を転送

  • "scp"コマンドでリモートマシンに公開鍵を転送。
scp id_rsa.pub [リモートマシンのユーザ名]@[リモートマシンのホスト名]:~/.ssh/id_rsa_hoge.pub

リモートマシンでの作業

1. ローカルマシンでリモートマシンにSSHで接続

ssh [リモートマシンのユーザ名]@[リモートマシンのホスト名]

2. SSHの設定ディレクトリに移動

  • Linuxでの"~"はホームディレクトリの意味
cd ~/.ssh

3. ローカルの新しい公開鍵をリモートマシンに登録

  • 転送した公開鍵を"cat"コマンドで表示
  • "autohrized_keys"は接続を許可する公開鍵を登録しておくサーバー側のファイル
  • ">>"はリダイレクションと言い、指定したファイルの末尾に追記する
  • 下の例では"cat"コマンドで公開鍵の中身を表示し、">>"で"authorized_keys"ファイルに追記している。
touch authorized_keys
cat id_rsa_hoge.pub >> authorized_keys

4. "authorized_keys"ファイルのパーミッションを変更

chmod 600 authorized_keys

5. 転送したローカルマシンの公開鍵を削除

rm -fv id_rsa_hoge.pub

再度、ローカルマシンでの作業

1. sshでローカルマシンからリモートマシンに接続

ssh [リモートマシンのユーザ名]@[リモートマシンのホスト名]

2. 接続できたら、OK

ローカルマシンの使い勝手を良くする(エイリアス)

1. Windows10のホームディレクトリ以下の~/.ssh/configを開く

cd ~/.ssh
code config

2. ~/.ssh/configを編集

  • 通常のエイリアス
# ~/.ssh/config
Host remote1                         # エイリアス 
    HostName example1.com            # リモートマシンのホスト名
    User hoge                        # リモートマシンのユーザ名
    Port 22                          # リモートマシンのSSHポート
    IdentityFile ~/.ssh/id_rsa       # セットとなる秘密鍵
  • 踏み台サーバがある場合のエイリアス
# ~/.ssh/config
Host bastion                         # 踏み台のエイリアス 
  HostName example2.com              # リモートマシンのホスト名
  User fuga                          # リモートマシンのユーザ名
  Port 22                            # リモートマシンのSSHポート
  IdentityFile ~/.ssh/id_rsa         # セットとなる秘密鍵

Host remote2                         # エイリアス 
  HostName dst                       # リモートマシンのホスト名
  User fuga                          # リモートマシンのユーザ名
  Port 22                            # リモートマシンのSSHポート
  IdentityFile ~/.ssh/id_rsa         # セットとなる秘密鍵
  ProxyCommand ssh -W %h:%p bastion  # bastion経由でSSHする

3. エイリアスを使って接続

ssh remote1
ssh remote2

終わり

本記事は終了です。

References

1
1
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
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?