はじめに
研究室のパソコンではビルド速度の速いTex環境を用意してある.
そこでTexファイルをノートパソコンから編集することにした.
要約
できること
- WindowsマシンでSSH接続のホストとなる
- WindowsマシンでSSH接続のクライアントとなる
- VSCodeで別のパソコンにあるファイルを編集する
前提
- プライベートネットワーク内での操作
- 外部のパソコンを操作する場合はこちらを参考にしてください
名称 | マシン |
---|---|
ホストPC | 研究室PC |
クライアントPC | ノートPC |
接続方法
WindowsマシンをSSH接続のホストにし,そのホストにクライアントPCから接続する.
VSCodeを通してファイルの編集を行う.
1. ホストPCのセットアップ
機能のインストール
- オプション機能から「OpenSSH サーバー」を追加
-
Windows + Q
で「オプション機能」を検索
ポート開放
- 管理者権限でPowerShellを実行
- 以下のコマンドで22番ポートを開放
netsh advfirewall firewall add rule name="sshd" dir=in action=allow protocol=TCP localport=22 profile=private
- 以下のコマンドでルールの確認
C:\Windows\System32> netsh advfirewall firewall show rule name="sshd"
規則名: sshd
----------------------------------------------------------------------
有効: はい
方向: 入力
プロファイル: プライベート
グループ:
ローカル IP: 任意
リモート IP: 任意
プロトコル: TCP
ローカル ポート: 22
リモート ポート: 任意
エッジ トラバーサル: いいえ
操作: 許可
OK
- コントロールパネルでも確認できる
- 以下のメニューから詳細設定の「受信の規則」
コントロール パネル\システムとセキュリティ\Windows Defender ファイアウォール
sshdのセットアップ
C:\Windows\System32> sshd install
C:\Windows\System32> Start-Service sshd
C:\Windows\System32> Set-Service sshd -StartupType Automatic
2. クライアントPCからホストPCにssh接続
機能のインストール
- オプション機能に「OpenSSH クライアント」がインストールされていることを確認
SSH接続の実行
ssh <ユーザー名>@<IPアドレス or ホスト名>
- ユーザー名の確認方法
- 以下のコマンド出力のusernameの部分
C:\Windows\System32>whoami
*****\username
- IPアドレス名の確認方法
- 以下のコマンド出力のIPv4 アドレスの部分
C:\Windows\System32>ipconfig
Windows IP 構成
イーサネット アダプター イーサネット:
接続固有の DNS サフィックス . . . . .: **************
リンクローカル IPv6 アドレス. . . . .: **************
IPv4 アドレス . . . . . . . . . . . .: ************** ← ここ
サブネット マスク . . . . . . . . . .: **************
デフォルト ゲートウェイ . . . . . . .: **************
3. VSCodeの設定
拡張機能のセットアップ
-
「Remote-SSH」をインストール
-
C:\Users\<username>\.ssh\config
を開く -
ホスト情報を記入
-
先ほど調べた結果を用いる
Host <設定したい名前>
HostName <IPアドレス>
User <ユーザー名>
Port 22
IdentityFile <C:\Users\username\.ssh\id_rsa> //公開鍵認証を用いる場合
接続
おわりに
接続する度にパスワードを入力するのがめんどくさい場合は公開鍵認証を用いたやり方をおすすめします.