Windows10でsshする
- Windows10でsshするのちょっと難しすぎない?
- 備忘録として手順を書いておく
- コマンドはPowershellコマンド
サーバとクライアントの構成
- サーバOS
- Windows10 Home
- クライアントOS
- Windows10 Home
1. sshを入れる
-
sshがデフォルトで入っている場合
- 何もしなくてよいがsshサーバ機能はデフォルトでは有効になっていないはず
- Windowsでoptionで検索
- オプション機能を追加する
- 機能の追加
- OpenSSHサーバを追加
-
sshがデフォルトで入っていない場合
- こっちはあんまり今回想定してないよ
- 以下のURLからダウンロードするらしいことは書いておく
https://github.com/PowerShell/Win32-OpenSSH/releases
-
サーバとクライアント両方にいれる
2. ポート開放
- 管理者権限でPowerShell起動
- これ実行
netsh advfirewall firewall add rule name="sshd" dir=in action=allow protocol=TCP localport=22
- これ実行
- サーバ
とクライアント両方でやる- クライアントで開放する必要はありませんでした。ebal5さんありがとうございます。
3. sshdを起動
- サーバ側設定
- サービスに登録
sshd install
- サービス起動
Start-Service sshd
- 自動起動設定
Set-Service sshd -StartupType Automatic
- サービスに登録
- この辺で一回再起動した方が良いかも
4. 接続
- ssh ユーザ名@サーバIPもしくはホスト名
- ホスト名はhostsファイルを編集してくれ
C:\Windows\System32\drivers\etc\hosts
- パスワード設定してないのにパスワード聞かれて詰む場合
- パスワード設定しておけ
- ユーザ名がわからないんだけど
- サーバで
whoami
コマンド実行\の前がユーザ名だから- →\の後がユーザ名でした。ozraruさんご指摘ありがとうございます。
- サーバで
- ホスト名はhostsファイルを編集してくれ
- 接続がタイムアウトする場合
- ファイアウォールが原因か、サーバ側でポート開放できてない
- ウィルスセキュリティソフトが原因かも
- それ以外ならお手上げ
- 接続できることを確認
5. 鍵認証方式
- いちいちパスワード入力してたらめんどくさい
- スクリプトで自動的にログインして何かしたいときに困る
- なのでサーバでパスワード聞くのやめる
-
C:\Windows\System32\OpenSSH
の中にsshd_config
を作る -
sshd_config_default
をコピーしてつくる -
PubkeyAuthentication yes
のコメントを外せ - sshdを再起動
Restart-Service sshd
-
- クライアントでキーを作る
- 鍵の名前はmykeyという名前にしようか
ssh-keygen -t rsa -f mykey
- クライアントのキーはどこでもいいけど.ssh/においておこう
mv mykey ~/.ssh/mykey
- 公開鍵をサーバに配置
scp mykey.pub ユーザ名@ホスト名もしくはip:
- これでサーバの~にmykey.pubが置かれているはず
- サーバの公開鍵の名前を変更
- すでに
~/.ssh/authorized_keys
がある場合cat mykey.pub >> ~/.ssh/authorized_keys
- ない場合
mv mykey.pub ~/.ssh/authorized_keys
- すでに
- ログインしよう
ssh -i 秘密鍵のパス ユーザ名@ホスト名もしくはip
- パスワード聞かれなければOK
感想
一番時間がかかったのはsshd_config
の置き場所。
ここに置くってどこに書いてあるんだろ。