#Windows10でサーバーにSSH接続
Windowsターミナルを使えばいろんなアプリケーションをインストールしなくても、Windows 10 のそのままの環境でサーバーに接続できるようになってたので、手順をまとめてみます。:)
#環境
クライアント | |
---|---|
OS | Windows 10 pro 21H1 |
Windows Terminal | Version 1.11.2921.0 |
PowerShell | Version 7.2.0 |
OpenSSH | OpenSSH_for_Windows_8.1p1, LibreSSL 3.0.2 |
サーバー | |
---|---|
サーバー | さくらのレンタルサーバー(スタンダード) |
FTPサーバ名 | MY_USER_NAME.sakura.ne.jp |
FTPアカウント | MY_USER_NAME |
パスワード | MY_PASSWORD |
#SSHでパスワードを使って接続
ssh MY_USER_NAME@MY_USER_NAME.sakura.ne.jp
MY_USER_NAME@MY_USER_NAME.sakura.ne.jp's password: MY_PASSWORD #パスワード入力
Welcome to FreeBSD!
%
#接続成功
これでひとまずは接続できますが、毎回パスワードを打つのが面倒です。そこで公開鍵認証を使った接続をしてみます。
#公開鍵認証を使った接続
公開鍵をssh-keygen
で作成し、サーバーへ転送、設定を行った上、任意の接続名のみで接続できるようにする、といった流れです。
##クライアントPCでキーペアを作成
Windowsターミナルを起動。PowerShellからssh-keygen
でキーペアを作成。
cd ~/.ssh
ssh-keygen -t rsa -f SAKURA_STD_MY_USER_NAME
パスフレーズはなしでしてみました。
オプション-t rsa
は暗号鍵の形式、-f
以下は任意のファイル名です。
フォルダ.ssh
内に、SAKURA_STD_MY_USER_NAME
(秘密鍵)とSAKURA_STD_MY_USER_NAME.pub
(公開鍵)の2つのファイルが作成されているのを確認。
##公開鍵をサーバーへ転送。
scpコマンドで公開鍵のファイルをサーバーへ転送。
(サーバー・ユーザ名は適宜ご自分のものに変更してください。)
scp SAKURA_STD_MY_USER_NAME.pub MY_USER_NAME@MY_USER_NAME.sakura.ne.jp:./
#パスワードを求めらられるので入力して、以下のように表示されたら転送完了。
SAKURA_STD_MY_USER_NAME.pub 100% 576 40.0KB/s 00:00
##サーバーの設定
パスワード使った接続でログインしてください。
ssh MY_USER_NAME@MY_USER_NAME.sakura.ne.jp
#パスワードを入力してサーバーにログイン
ls -a
で.ssh
ディレクトリと、転送した公開鍵のファイルがあるか確認。
フォルダがない場合はmkdir ~/.ssh
で作成。
公開鍵をauthorized_keys
に書き込み、パーミッションを600
に変更します。
% cat SAKURA_STD_MY_USER_NAME.pub > .ssh/authorized_keys
% chmod 600 ~/.ssh/authorized_keys
パーミッション600
は、rw-------
(所有者のみ読み書き可能)です。
##クライアントPCのconfigファイルの設定
キーペアを置いたフォルダに、config
ファイルを作成。
HOSTの名前と、MY_USER_NAMEの部分は適宜ご自身のものに変更。
HOST sakuraStdMyUserName
HostName MY_USER_NAME.sakura.ne.jp
User MY_USER_NAME
IdentityFIle ~/.ssh/SAKURA_STD_MY_USER_NAME
Windowsターミナルから、PowerShellで以下の通り入力するとサーバーにログインできます。
ssh sakuraStdMyUserName
Welcome to FreeBSD!
と出て、接続できたら成功! :D
#WSL2のUbuntuからも接続
WSL2 | |
---|---|
OS | Ubuntu 20.04 |
OpenSSL | OpenSSH_8.2p1 Ubuntu-4ubuntu0.3, OpenSSL 1.1.1f 31 Mar 2020 |
Windowsと同じようにキーペアを作成、転送。
$ cd .ssh/
$ ssh-keygen -t rsa -f SAKURA_STD_MY_USER_NAME_WSL
$ scp SAKURA_STD_MY_USER_NAME_WSL.pub My_USER_NAME@MY_USER_NAME.sakura.ne.jp:./
サーバーにパスワードでログインし、
公開鍵をauthorized_keys
に追記します。 >>
(追記になってるか注意。)
$ cat SAKURA_STD_MY_USER_NAME_WSL.pub >> .ssh/authorized_keys
ローカルにconfig
ファイルを作成。ご自身のものに適宜変更。
HOST sakuraStdMyUserNameWsl
HostName MY_USER_NAME.sakura.ne.jp
User MY_USER_NAME
IdentityFIle ~/.ssh/SAKURA_STD_MY_USER_NAME_WSL
WSLから接続
$ ssh sakuraStdMyUserNameWsl
接続できたら成功! :D
#あとがき
これでターミナルから楽にサーバーに接続できるようになりました!
OpenSSHは今のWindows10にはすでにインストールされているみたい。Windowsターミナルは将来的に標準になるようですが、現在はインストールの必要があると思います。PowerShell7.2に関しても同じく。WSL2とUbuntuに関してはもちろんインストールが必要ですが、楽しいので入れてみたら良いと思う!:)))
いろんなサイトやブログを参考にさせてもらいました。先人のみなさんのたくさんの知恵に感謝です! X))
##参考