目次
SSH つなげ方 SSH 設定方法
SSH接続初心者の人にはぜひ読んでほしい。
SSHについてわかりやすい記事は↓
参考
https://qiita.com/tag1216/items/5d06bad7468f731f590e
基本的に以下参照するとわかりやすい
参考
https://sorceryforce.net/ja/tips/sftp-setup-open-ssh-password
OpenSSHでSSHサーバーとSSHクライアントがあることが前提なので、以下を参考にインストールする。以下は上記のサイトを参考にしたものなので上記のほうを見るといい。
Windowsには標準でOpenSSHクライアント、サーバーともにあるので、インストールするだけである。
なければ、githubからファイルをダウンロードして、インストールするとよい。
参考
https://weekend-v.work/archives/537
SSHとは?
Secure Shell の略
暗号化された通信を使用して、リモートのコンピュータやサーバーに安全に接続し、遠隔操作を行うために使用される。
暗号化された通信となる。
ネットワーク上のプライベートなサーバへの接続や、githubもssh接続となっている。
パスワードやデータを暗号化して通信する。
クライアントがサーバーに接続する時に、接続先が意図しないサーバーに誘導されていないか厳密にチェックする。
https://qiita.com/tag1216/items/5d06bad7468f731f590e
SSHクライアント、SSHサーバーとは?
基本的にファイルを受信するほうをサーバー側という。
SSHの接続元はクライアント側となるので、ここではSSH接続するほうをクライアント側という。
SSH接続されるほうをサーバー側という。
このブログに書く内容は、クライアント側からサーバー側へSSH接続をして、ファイルを転送することである。
また、パスワード認証ではなく、SSH鍵認証を行って接続する。

ここからはクライアント側にOpenSSHクライアント、サーバー側にOpenSSHサーバーがインストール済みであることを前提に進める。
SSH接続する
Windowsの場合、コマンドプロンプトでもPowerShellでもどちらでもいいが管理者権限で行う。その前にOpenSSHがインストールされているか確認する。
SSHサーバー起動
インストールしただけではSSHサーバーは起動していないので、windwosのメニューバーでサービスと検索して、サービス画面を開く。
ssh サーバーを起動させる。スタートアップを自動にしておくとよい。
もしサービスの設定が面倒であれば、以下のコマンドでも起動する。
Start-Service sshd
自動起動設定は以下
Set-Service sshd -StartupType Automatic
sshdについて↓
参考
https://wa3.i-3-i.info/word13575.html
SSH接続
ssh接続するには、Tera TearmなどのSSHクライアントソフトも使えるが、ここではpower shellでコマンドを打つ。
以下のコマンドでSSHが使えるか確認できる。
ssh -v
としたり、単純にsshコマンドを打ったりしてエラーが出なければインストール済みである。
ちなみに自分のマシンにOpenSSHクライアントとサーバーをインストールしていれば、以下のコマンドで自分のマシンに自分からssh接続できる。
ssh localhost
この場合、ユーザー名は無くてもできる。
SSH接続するには、接続したいサーバー側マシンのユーザー名が必要である。
このユーザー名はwindowsにログインする時に使うユーザー名であり、ユーザーは作成可能である。ここではusernameとする。
ssh username@server_ip
server_ipは接続するサーバー側のIPアドレスである。マシン名でも接続可能。
現時点ではパスワード認証となっているので、サーバー側のユーザーのパスワードを入力する。
接続に成功すると、初めて接続する場合、接続するか聞かれるのでyesとする。
このとき接続先のユーザーフォルダの下の.ssh/known_hostsに公開キーが登録される。
ここでは特に気にしなくていいが、known_hostsの中身は書き換えないようにする。
ここまでで、SSH接続はできるようになったので、次は鍵認証をする。
SSH鍵を作成
https://weekend-v.work/blog/wp/wp-admin/post.php?post=602&action=edit
さらに詳しく
SSHの公開鍵認証の仕組み
SSHの公開鍵認証は、以下の2つの仕組みがある。
- クライアント認証
- サーバー認証
① 鍵の配置
まず、クライアント側(ローカル側)で鍵ペアを作成。
ssh-keygen -t rsa
この時RSAの暗号化方式を指定してるが、現在はもっと安全なed25519が推奨される
ssh-keygen -t ed25519
生成されるファイル:
- 秘密鍵:
~/.ssh/id_rsa - 公開鍵:
~/.ssh/id_rsa.pub
この公開鍵をサーバーのauthorized_keys/に配置する。
~/.ssh/authorized_keys
② クライアント認証(ログイン認証)
ログイン時の流れ:
- クライアントがサーバーに接続
- サーバーがランダムなデータ(チャレンジ)を送る
- クライアントが秘密鍵で署名
- サーバーが公開鍵で検証
👉 これにより、秘密鍵を持っている本人かを確認する。
③ サーバー認証(なりすまし防止)
初回接続時:Are you sure you want to continue connecting? が表示される。
これはサーバーの公開鍵を確認している処理。
承認すると ~/.ssh/known_hosts にサーバーの公開鍵が保存される。
④ 2回目以降
接続時に:
- サーバーの公開鍵と
- known_hostsの情報
を比較して同じサーバーかを検証する。
https://weekend-v.work/blog/wp/wp-admin/post.php?post=602&action=edit