phoenix-powerPowerShellとOpenSSHの使い方

環境は、Windows10です。

PowerSHellの起動は、基本的に、Win+rにてpowershellで起動できます。面倒ならタスクバーに登録。パスワードを設定していない場合は、Ctrl+Alt+Deleteで設定。古いパスワードはこの場合は空にします。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
# バージョン
C:> $PSversionTable

# 管理者権限
C:> Start-Process powershell.exe -Verb runas

# スクリプト実行権限
C:> Set-ExecutionPolicy RemoteSigned
C:> Get-ExecutionPolicy

# OpenSSHのインストール
C:> function Install-Openssh {
   param ( $TempDir="$env:temp\opensshInstall" )
   if(!(Test-Path -Path $TempDir -PathType Container))
    {
       $null = New-Item -Type Directory -Path $TempDir -Force
    }
   $client = new-object System.Net.WebClient
   $client.DownloadFile("https://github.com/PowerShell/Win32-OpenSSH/releases/download/10_13_2015/OpenSSH-Win32.zip", "$TempDir\OpenSSH-Win32.zip" )
   Expand-Archive -Path $TempDir\OpenSSH-Win32.zip -DestinationPath $env:programfiles
   $Env:Path += ";$env:programfiles\OpenSSH-Win32"
   [Environment]::SetEnvironmentVariable('PATH', $Env:Path, 'Machine')
}

C:> Install-openssh

# psexecのインストール
C:> function Install-Pstools {
   param ( $TempDir="$env:temp\pstoolsinstall" )
   if(!(Test-Path -Path $TempDir -PathType Container))
    {
       $null = New-Item -Type Directory -Path $TempDir -Force
    }
   $client = new-object System.Net.WebClient
   $client.DownloadFile("https://download.sysinternals.com/files/PSTools.zip", "$TempDir\PSTools.zip" )
   $null = New-Item -Type Directory -Path $env:programfiles\PSTools -Force
   Expand-Archive -Path $TempDir\PSTools.zip -DestinationPath $env:programfiles\PSTools
   $Env:Path += ";$env:programfiles\PSTools"
   [Environment]::SetEnvironmentVariable('PATH', $Env:Path, 'Machine')
}

C:> Install-pstools

## SSHサーバーの起動(サーバー)
# なんかよくわからないけど、公開鍵と秘密鍵をsshd.exeがあるフォルダに作成するらしい, 通常はクライアントで作った公開鍵を登録するだけでいいんだけど...
C:> cd $env:programfiles\OpenSSH-Win32
C:> ssh-keygen.exe -t rsa -f ssh_host_rsa_key
C:> ssh-keygen.exe -t dsa -f ssh_host_dsa_key
C:> ssh-keygen.exe -t ecdsa -f ssh_host_ecdsa_key
C:> ssh-keygen.exe -t ed25519 -f ssh_host_ed25519_key

# ファイアウォールの設定, ローカルポート22を開けている
C:> New-NetFirewallRule -Protocol TCP -LocalPort 22 -Direction Inbound -Action Allow -DisplayName SSH

# バックグラウンドでSSHサーバーを起動する, psexec.exeで立ち上げたcmd.exeにてsshd.exeを実行することで、SSHサーバーであるsshd.exeのバックグラウンド起動を追加することが可能
C:> psexec.exe -i -s cmd.exe
C:> sshd.exe

## SSHサーバーへの接続(Macクライアント)
$ sudo ssh user@192.168.11.15

Macで接続すると、すごい文字化けする。これは、msfconsoleでもお馴染みなので、特に驚くことではなく、chcp 65001を実行。次に、Windowsは2つも持ってないので、新しいPowerShellウィンドウを開いて接続してみる。

あと、Windows10でパスワードを設定してると、起動時にパスワード入力を求められるのですが、これを自動入力する方法を紹介。

C-r:netplwiz

パスワードは、Windowsで最初にSSH接続するときに必要になったんだけど、相変わらずWindowsは色々と面倒なことが多いです。

PowerShellの環境を整えればCLIユーザーでもある程度は快適に使えるようになるんだけど、そもそも環境の設定が非常に面倒なので、やる気が起きないというのがある。また、Win32-OpenSSH自体も現時点では、あまり実用的ではない印象。