LinuxマシンのシェルからONTAPの状態を拾ったり、設定を投入したりするときにONTAPのパスワード認証が邪魔になることがあります。この場合、ONTAPと鍵交換しておけばパスワード無しでリモートからONTAP CLIを実行し、結果を得ることができます。
また、ONTAPのコマンドの中には[y/n]を聞かれるものがありますが、これをバイパスして常にyを選ぶ設定も紹介します。これによりJP1やZabbixと連携して、外部から特定の時間帯のsysstat結果を拾いたい、みたいなことにも使えると思います。
- WindowsのPowerShellでの手順は以下が参考になります。
https://qiita.com/s_yosh1d/items/7ed8af8d7e8f16ddf040 - Amazon FSx for NetApp ONTAPで設定する場合は、以下の「admin」ユーザを「fsxadmin」ユーザに置き換えて読んでください。
■全体の流れ
(1) Linuxマシンで、ONTAPにログインしたいユーザでssh-keygenを実行
(2) Linuxユーザの公開鍵の確認
(3) ONTAP側に公開鍵でのみログインできる、新しいadminユーザ「adminssh」を作成
(4) adminsshユーザに、Linuxのユーザの公開鍵を登録
(5) LinuxからONTAP CLIを実行
■手順詳細
(1) Linuxマシンで、ONTAPにログインしたいユーザでssh-keygenを実行
以下の実行中にパスワード入力を求められますが、入力せずにエンターで次に進みます。
[ec2-user@ip-172-29-2-235 ~]$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/ec2-user/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/ec2-user/.ssh/id_rsa.
Your public key has been saved in /home/ec2-user/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:WARjuBFYIHQWSr8QfBDxNZtXzqoV/mzVg2ZGbQSXhMk ec2-user@ip-172-29-2-235.ap-northeast-1.compute.internal
The key's randomart image is:
+---[RSA 2048]----+
|+B=B+=+.....=+. |
|.oO.+.+o+ E+. |
| o.o = o.o . o |
| . o ooo . + |
| . .+S * o |
| o o = . |
| . + |
| . |
| |
+----[SHA256]-----+
(2) Linuxユーザの公開鍵の確認
[ec2-user@ip-172-29-2-235 ~]$ cat /home/ec2-user/.ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC7gD1MkZE1pePcaN28Qrkq+27vghQTPQ/l3Rq/I+bo+Q4uRrIk9ae40zdN++JrSPWpkTGQ7RJ9pRtfBWYG6U4xK9gG0AoWfXhKHvXFdyIClH/oOjYLQxo3t8gD1zi5prlGhHKfKoRjILzxSDFrWUK5XNL+ly6OpkdGXSGDwhx015yhEQS1VmFpKOXP6tB++8r34JuM9kzBuUlnxSdgGCpRQJ26aDW/WB0WewXQdOTO+OMXTHsg14Yl6Te+A56OL7JIoBHSxK3835xdkCne8K/pLowvrt6/8Mx2fp3Lw6IQjyTQtitxdpzUhtpdpfIFOv0rtxjnf0f9NF8G3AOVfroT ec2-user@ip-172-29-2-235.ap-northeast-1.compute.internal
(3) ONTAP側に公開鍵でのみログインできる、新しいadminユーザ「adminssh」を作成
sr-a300-02::> security login create -user-or-group-name adminssh -application ?
console
http
ontapi
rsh
service-processor
snmp
ssh
telnet
sr-a300-02::> security login create -user-or-group-name adminssh -application ssh -authentication-method ?
password
publickey
domain
nsswitch
sr-a300-02::> security login create -user-or-group-name adminssh -application ssh -authentication-method publickey -role admin
Warning: To use public-key authentication, you must create a public key for user "adminssh".
※ -role adminを指定するとなんでもできてしまうアカウントになるので、制限したい場合は-roleの引数を変更してください。
※ FSx for ONTAPの場合は、-roleの引数に以下を選択できます。(ONTAP9.11.1P3の場合)
FsxId09146a4d2755be841::*> security login create -user-or-group-name adminssh -application ssh -authentication-method publickey -role ?
fsxadmin
vsadmin
vsadmin-backup
vsadmin-protocol
vsadmin-readonly
vsadmin-snaplock
vsadmin-volume
(4) adminsshユーザに、Linuxのユーザの公開鍵を登録 (公開鍵は""で囲む)
手順(2)で作成した公開鍵を以下のコマンドでONTAPのadminsshユーザに登録します。-publickeyの引数に鍵を指定しますが、間にスペースなどが入っているので、ダブルコーテーション""で囲ってください。
sr-a300-02::> security login publickey create -username adminssh -index 0 -publickey "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC7gD1MkZE1pePcaN28Qrkq+27vghQTPQ/l3Rq/I+bo+Q4uRrIk9ae40zdN++JrSPWpkTGQ7RJ9pRtfBWYG6U4xK9gG0AoWfXhKHvXFdyIClH/oOjYLQxo3t8gD1zi5prlGhHKfKoRjILzxSDFrWUK5XNL+ly6OpkdGXSGDwhx015yhEQS1VmFpKOXP6tB++8r34JuM9kzBuUlnxSdgGCpRQJ26aDW/WB0WewXQdOTO+OMXTHsg14Yl6Te+A56OL7JIoBHSxK3835xdkCne8K/pLowvrt6/8Mx2fp3Lw6IQjyTQtitxdpzUhtpdpfIFOv0rtxjnf0f9NF8G3AOVfroT ec2-user@ip-172-29-2-235.ap-northeast-1.compute.internal"
(5) LinuxからONTAP CLIを実行
ssh -iの引数に秘密鍵(id_rsa)を指定します。id_rsa.pubは公開鍵なのでこれでは接続できません。
[ec2-user@ip-172-29-2-235 ~]$ ssh -i /home/ec2-user/.ssh/id_rsa adminssh@192.168.66.70
ONTAPのversionコマンドを実行してみます。
[ec2-user@ip-172-29-2-235 ~]$ ssh -i /home/ec2-user/.ssh/id_rsa adminssh@192.168.66.70 "version"
Last login time: 10/22/2022 14:05:08
NetApp Release 9.8P12: Fri May 13 00:04:00 UTC 2022
y/nを聞かれるコマンドを実行します。
・コマンドをセミコロン;でつないで、複数コマンドを実行します。
・「set confirmations off」でy/nが聞かれなくなります。
[ec2-user@ip-172-29-2-235 ~]$ ssh -i /home/ec2-user/.ssh/id_rsa adminssh@192.168.66.70 "set -confirmations off ; version ; set diag ; object-store config ? ; version"
This is your first recorded login.
NetApp Release 9.8P12: Fri May 13 00:04:00 UTC 2022
create ambiguous command
delete ambiguous command
modify ambiguous command
show ambiguous command
dblade> *The dblade directory
fabricpool_pvr> *The fabricpool_pvr directory
rename Rename an existing object store configuration
NetApp Release 9.8P12: Fri May 13 00:04:00 UTC 2022
関連情報は以下に今後追記予定です。