windowsサーバーからpaloaltoに対してssh鍵認証を利用してパスワードレスでログインする方法をまとめてみました。
パスワード入力が不要となると、CLIを利用してpaloaltoに接続して操作するときに便利だなと思ったので試してみました。
また、windowsにおけるssh公開鍵/秘密鍵のペアの作成方法についてもまとめました。
ssh公開鍵を作成する
まずWindowsサーバー側で「ssh-keygen」コマンドを利用してssh公開鍵/秘密鍵のペアを作成します。
・powershellを起動して「ssh-keygen.exe」とコマンドを打ちます。
上記コマンド入力後、3回くらい入力を求められることがありますが、デフォルト値でよければすべてそのままEnterを押します。
※このときパスフレーズを設定するとsshログイン時にパスフレーズを要求されますので、パスワードレスにしたい場合にはパスフレーズを入力しないでください。
すると、実行したサーバの「C:\Users\[ユーザ名]\.ssh」というフォルダに「id_rsa」「id_rsa.pub」という2つのファイルが作成されていることを確認できます。
このうち、「id_rsa.pub」が公開鍵になります。
必要に応じてリネームするなど分かりやすくするとよいかと思います。
公開鍵を利用してpaloalto側でユーザを作成する
上記で作成した公開鍵を利用してpaloalto側でユーザを作成します。
・[DEVICE]-[管理者]‐[追加]をクリックします。
・「公開鍵認証 (SSH) の使用」にチェックを入れて、「キーのインポート」をクリックして、先ほど作成した「id_rsa.pub」をアップロードします。
※「クライアント証明書認証のみを使用 (Web)」や、「ユーザータイプ」のパラメータは任意の設定で構いません。
・「Commit」を押して設定を有効化します。
コミットが完了したらユーザの作成は完了です。
ssh接続を試す
windowsサーバー側でssh接続をしてみます。
※今回はpowershellを利用していますがTeraTermなどのクライアントアプリでもOKです。
ssh [接続したい機器のホストネーム or IP] -l [作成したユーザ名]
初めて接続するサーバになる場合には上記のように
「ほんとに接続しますか?(Are you sure you want to continue connecting (yes/no)?)」
と聞かれるので[yes]と入力して進みます。
ログインすることができました。
また、以下のように2回目以降の接続は、sshコマンドを入力後パスワードなしでログインすることが可能です。
ssh認証鍵にパスフレーズを設定している場合
ssh認証鍵にパスフレーズを設定している場合にはssh接続の際にパスフレーズの入力を求められ、パスワードを利用してログインするのと変わらなくなってしまいます。
さいごに
パスワードレスの接続方法ということを試しておいてなんですが、セキュリティの観点からはパスフレーズなどは基本的には設定するほうがいいと思っています。
ただ、sshの接続経路も安全であり、パスワードレスでssh認証してスクリプトなどを流し込みたい場合などには、今回の方法でパスワードレスの接続をさせるのが楽でよいかと思いました。