Windowsで開発環境整えるのって難しいですよね…。
Linuxに比べて資源少ないし…。
今回はEC2デビューしたので、WindowsのCMDからEC2にSSHする方法を説明します。
##環境
- Windows10 Command Prompt (ローカル)
- EC2 Linux(リモート)
###EC2の設定
EC2側でインスタンスを立ち上げ、SSH接続を有効にします。
私はLinuxにしましたが、お好きなOSで大丈夫だと思います。
立ち上げの際作成されるSSHキーの.pemファイルはC:\User$User\.sshに保存してください。
WindowsでのSSHのデフォルトフォルダーです。
*EC2インスタンス立ち上げの詳細は省きます。
###SSHをインストール
Windows10で 設定→アプリ→オプション機能→機能の追加 から
OpenSSHクライアントとOpenSSHサーバーをインストールします。
###.pemファイルの権限を修正
PowerShellを起動し、以下のコマンドを打ちます。
こうすることで、PC上の他のユーザーがこのSSHキーを使うことを防ぐことができます。
$path = ".ssh\SSH鍵名.pem"
icacls.exe $path /reset
icacls.exe $path /GRANT:R "$($env:USERNAME):(R)"
icacls.exe $path /inheritance:r
SSHキーのプロパティ→セキュリティで今使っているWindowsユーザーのみ表示されていればOKです。
###cmdからSSHする
以上でWindowsの設定は完了しました!
EC2のインスタンス一覧から接続ボタンを押してSSHコマンドを取得します。
コマンドプロンプトで、.sshフォルダに移動し、上記のコマンドを打てばEC2に入れます。
C:\User\$User>cd .ssh
C:\User\$User\.ssh>ssh -i "鍵名.pem" ec2-user@ec#-#-##-###-###.region.compute.amazonaws.com
(#は数字、regionはインスタンスの地域コード、パスはEC2コンソールから取得)
##おまけ SSHのコマンドが長すぎ!
EC2のSSHコマンドって結構長いですよね。
それを開発のたびに打つのは面倒くさい…
そんな時は、SSHにあだ名をつけちゃいます。
まずはコマンドプロンプトから
C:\User\$User\.ssh> notepad config
でconfigファイルを開き、以下を入力します。
Host ec2nickname (あだ名)
HostName #-#-##-###-###.region.compute.amazonaws.com (インスタンスのURL)
User ec2-user (インスタンスのユーザー名)
IdentityFile ~/.ssh/鍵名.pem
次に、dirコマンドでconfigファイルがあることを確認します。
config.txtになっていた場合、moveコマンドでconfigに直してください。
そしたら、**ssh <新しい名前>**だけでEC2に入れるようになります!
C:\User\$User\.ssh>move config.txt config
C:\User\$User\.ssh>ssh ec2nickname
##参考資料
https://www.youtube.com/watch?v=gpQOiln8Q4k
https://www.youtube.com/watch?v=GEA4t1Z1OP4