Windows Server 2019からNetAppに対してsshを実行するにはTeraTermやputtyをインストールしないとダメなのかなぁ、と思いつつ、PowerShellで「ssh」と実行してみると、OpenSSH 7.7p1がインストールされていた。
PS C:\Users\Administrator> ssh
usage: ssh [-46AaCfGgKkMNnqsTtVvXxYy] [-B bind_interface]
[-b bind_address] [-c cipher_spec] [-D [bind_address:]port]
[-E log_file] [-e escape_char] [-F configfile] [-I pkcs11]
[-i identity_file] [-J [user@]host[:port]] [-L address]
[-l login_name] [-m mac_spec] [-O ctl_cmd] [-o option] [-p port]
[-Q query_option] [-R address] [-S ctl_path] [-W host:port]
[-w local_tun[:remote_tun]] destination [command]
PS C:\Users\Administrator> ssh -V
OpenSSH_for_Windows_7.7p1, LibreSSL 2.6.5
PS C:\Users\Administrator>
じゃあ、Windows ServerからNetAppに対してタスクスケジューラから何らかの処理を実行させることが可能なのか、ということで手法検討
Windowsサーバ上で鍵作成
まずは、ONTAPに公開鍵認証でログインするための設定を実施
「ssh-keygen」コマンドを実行して、鍵を作成
PS C:\Users\Administrator> ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (C:\Users\Administrator/.ssh/id_rsa):
Created directory 'C:\Users\Administrator/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in C:\Users\Administrator/.ssh/id_rsa.
Your public key has been saved in C:\Users\Administrator/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:Eomw4OJ5tGv2Nx0HkGCeaRT5PxBU3krAixd96aCIkJU administrator@WindowsServer
The key's randomart image is:
+---[RSA 2048]----+
|. +..=*o+. . |
|.+ E+ooBoo.o |
|..o.o=* *o+. |
|o o.oo B.... |
| o o o S.. |
| . . . + . |
| + . + |
| o . o . |
| .. . |
+----[SHA256]-----+
PS C:\Users\Administrator>
実行したユーザのホームディレクトリに.sshディレクトリが作成され、id_rsaとid_rsa.pubが作成された。
このうち使うのはid_rsa.pub の中身
「notepad .ssh\id_rsa.pub」などを実行して内容を確認する。
NetApp上に公開鍵でログインできるユーザを設定
次にNetAppにログインして、現在のユーザ一覧を確認する。
「security login show -vserver クラスタ名」を実行する。
netapp::> security login show -vserver netapp
Vserver: netapp
Second
User/Group Authentication Acct Authentication
Name Application Method Role Name Locked Method
-------------- ----------- ------------- ---------------- ------ --------------
admin console password admin no none
admin http password admin no none
admin ontapi password admin no none
admin service-processor
password admin no none
admin ssh password admin no none
autosupport console password autosupport no none
6 entries were displayed.
netapp::>
現状は公開鍵認証(publickey)でログインできるユーザが設定されていません。
現状あるadminユーザに対して、公開鍵認証でもログインできるように設定するには「security login create -user admin -application ssh -authentication-method publickey -role admin」と実行します
netapp::> security login create -user admin -application ssh -authentication-method publickey -role admin
Warning: To use public-key authentication, you must create a public key for user "admin".
netapp::>
上記で警告が出ていますが、これは現状該当するユーザ用の公開鍵が登録されていないためのものです。
再度「security login show -vserver クラスタ名」を実行すると、publickeyの登録が増えていることが確認出来ます。
netapp::> security login show -vserver netapp
Vserver: netapp
Second
User/Group Authentication Acct Authentication
Name Application Method Role Name Locked Method
-------------- ----------- ------------- ---------------- ------ --------------
admin console password admin no none
admin http password admin no none
admin ontapi password admin no none
admin service-processor
password admin no none
admin ssh password admin no none
admin ssh publickey admin - none
autosupport console password autosupport no none
7 entries were displayed.
netapp::>
次に公開鍵を登録するので、まずは現在の公開鍵登録状況を「security login publickey show」を実行して確認します。
netapp::> security login publickey show
This table is currently empty.
netapp::>
上記の場合はまだ何も登録されていません。
ここで先ほど作成したid_rsa.pubの中身を登録します。
「security login publickey create -username admin -index 0 -publickey “<id_rsa.pubの中身>”」
netapp::> security login publickey create -username admin -index 0 -publickey "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCYShjYkl1hs/JlSSayuyAeL/5zlmGCQ15Z0c1BiJ8Hi3/fjEM0IjuJme19J1xM5M9UpdvdI2SA/Vtanidfwx231d2pXsveniT4H3OJApgKRTE7xtsjAtg1El2rNbm0C7qgMw4p0tsjp2ZSAY2QkQBoUzgBfTfOYWWR6V+D3PyU9N9AF9VIqB6d+yEDxg9GOe76ILzKB9Wo3F8t0p+OtGU9C1gAAPndvoV+7yepoS2DSu8ft8mRGL6aTFQDMbhqEYPKZx2Gx2XqfnZA1bFggntsWWtg3TGLmCOww8RLd0CIhMfl8aJJuTmjjDJh3tN9BZx9kNjj6yF8Irxjntih9ejH administrator@WindowsServer"
netapp::> security login publickey show
Vserver: netapp
UserName: admin Index: 0
Public Key:
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCYShjYkl1hs/JlSSayuyAeL/5zlmGCQ15Z0c1BiJ8Hi3/fjEM0IjuJme19J1xM5M9UpdvdI2SA/Vtanidfwx231d2pXsveniT4H3OJApgKRTE7xtsjAtg1El2rNbm0C7qgMw4p0tsjp2ZSAY2QkQBoUzgBfTfOYWWR6V+D3PyU9N9AF9VIqB6d+yEDxg9GOe76ILzKB9Wo3F8t0p+OtGU9C1gAAPndvoV+7yepoS2DSu8ft8mRGL6aTFQDMbhqEYPKZx2Gx2XqfnZA1bFggntsWWtg3TGLmCOww8RLd0CIhMfl8aJJuTmjjDJh3tN9BZx9kNjj6yF8Irxjntih9ejH administrator@WindowsServer
Fingerprint:
SHA256:Eomw4OJ5tGv2Nx0HkGCeaRT5PxBU3krAixd96aCIkJU
Bubblebabble fingerprint:
xobov-gyvaf-hokad-pukun-leper-henuc-tihyn-haban-pybom-defel-cyxyx
Comment:
-
netapp::>
登録されました
Windowsサーバからのsshアクセス試験
ではWindows Sevrer上から「ssh admin@IPアドレス “NetAppのコマンド”」を実行してみます。
PS C:\Users\Administrator> ssh admin@172.17.44.55 "system node show"
The authenticity of host '172.17.44.55 (172.17.44.55)' can't be established.
ECDSA key fingerprint is SHA256:Hx4oFf3c4GUnc/HxpK4X1U6Um7M2a+hG4JdUAtFi4Hc.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '172.17.44.55' (ECDSA) to the list of known hosts.
Last login time: 12/13/2022 18:31:20
Node Health Eligibility Uptime Model Owner Location
--------- ------ ----------- ------------- ----------- -------- ---------------
netapp-01 true true 1 days 07:30 SIMBOX
PS C:\Users\Administrator> ssh admin@172.17.44.55 "system node show"
Last login time: 12/13/2022 18:55:35
Node Health Eligibility Uptime Model Owner Location
--------- ------ ----------- ------------- ----------- -------- ---------------
netapp-01 true true 1 days 07:30 SIMBOX
PS C:\Users\Administrator>
初回ログイン時は、sshキーの登録について確認されますが、それ以降はコマンドがすぐに実行できました。
バッチファイル&タスクスケジューラ実行試験
タスクスケジューラからコマンドが実行できるかを確認してみます。
まずはNetApp内の時刻を確認し、それを保存するバッチファイルを作成します。
@echo off
ssh admin@172.17.44.55 "date" >> c:\tmp\command.txt
これをタスクスケジューラに登録してログアウト。
指定時間経過後にファイルを確認してみます。
PS C:\Users\Administrator> type C:\tmp\command.txt
Last login time: 12/13/2022 19:00:13
Node Date Time zone
--------- ------------------------ -------------------------
netapp-01
Tue Dec 13 19:05:11 2022 Japan
PS C:\Users\Administrator>
きちんと実行されて、ファイルが作成されていました。