Windows 間でSSH 通信を行うための手順
現在 OpenSSHクライアントとOpenSSH サーバー機能はデフォルトで利用可能です。
Windows起動に連動してOpenSSHクライアントとOpenSSH サーバーを起動させたいなら
[サービス]で「OpenSSH Authentication Agent」と
「OpenSSH SSH Server」のスタートアップの種類を「自動」、若しくは「自動(遅延開始)」に設定する必要があります。
コマンドプロンプトで相手側コンピューターに接続を試みる
相手側コンピューターのユーザー名とIアドレスかホスト名(コンピューター名)、ログインパスワードが判っているのが前提となります。
ssh 相手側ユーザー名@相手側コンピュータ名
フィンガープリントの受け入れを聞いてくるので yes → Enter
パスワードを聞いてくるのでパスワード入力 → Enter で、接続先のユーザーディレクトリに切り替わったら、パスワード認証による接続は OK
この時点で接続元コンピューターのユーザーフォルダに .ssh フォルダが作成され、中に ホスト情報が記述された known_hosts ファイルが作成られます。
これらを接続し合うコンピューターすべてで行います。
公開鍵認証の設定
これにより面倒なパスワード入力が省略できるようになります。
一連の作業はコマンドプロンプトか PowerShell で行います。
id_rsa(秘密キー)とid_rsa.pub(公開キー)の作成
下記コマンドでid_rsa(秘密キー)とid_rsa.pub(公開キー)が作成されます。
ssh-keygen
下記のようにキーファイルの作成場所のパスが表示されます。
C:\/Users/ユーザー名/id_rsa
接続するコンピューターが1台だけならそのままEnterで構わないが複数のコンピューターと接続したいなら、
自分のコンピューターだと識別しやすい固有のキーファイル名にしたほうが無難です。
任意のファイル名を含めたパスを入力してEnter。
C:\/Users/ユーザー名/pc1_rsa
上の例だとC:\/Users/ユーザー名/.ssh/ にpc1_rsaとpc1_rsa_pub というファイルが作成されます。
.sshディレクトリに移動
cd .ssh
中身を確認します。
dir
pc1_rsa(秘密キー) と pc1_rsa.pub(公開キー) が作成されていることを確認したらキーエージェントに秘密キーを追加します。
ssh-add pc1_rsa
これらの操作を接続し合うコンピューターすべてで行います。
接続先コンピューターに pc1_rsa.pub を転送
scp pc1_rsa.pub ユーザー名@コンピューター名:.ssh
接続先コンピューター側で届いている id_rsa.pub の中身を authorized_keys に追加。
type pc1_rsa.pub >> authorized_keys
authorized_keys が存在しない場合、自動的に作成されます。
接続の簡略化
接続を試みる側の C:\Users/ユーザー名/.ssh/ に下記内容の config ファイルを置きます。
Host pc2 // (接続名(任意))
HostName コンピューター2 // (接続先のコンピューター名)
User pc2 // (接続先のユーザー名)
Port 22 // (接続に使用するポート番号)
IdentityFile ~/.ssh/pc1_rsa // (接続を試みる側の秘密キーまでのパス)
これで次回から下記コマンドで接続することができます。
ssh pc2
既存の秘密キーから公開キーを作成
誤って公開キーを削除してしまった時などは秘密キーを基に公開キーを作り直すことができます。
ssh-keygen -y -f pc1_rsa > pc1_rsa.pub