2019年11月13日水曜日

◆パス(文字列)から拡張子なしのファイル名を取り出す方法

数年ぶりにPowerShellのお仕事をしているので浦島太郎状態。

ファイルオブジェクトだとプロパティで色々用意されていたように思うが、文字列だと「Split-Path」では用が足りなさそう。

力業でやっても大したことは無いのだが誰かに見られると恥ずかしいのでちょっと調べてみた。(笑)

「System.IO.Path」のStaticで色々と用意されているらしい。

パスの文字列から拡張子やファイル名を取り出す方法

2019年11月5日火曜日

◆PowerShellからSSHを使う

1.OpenSSHクライアントを追加

Windows10 でSSHを使うには「Windowsキー  + I」で「Windowsの設定」を開く。
「アプリ」を選んで「アプリと機能」を開く。
「アプリと機能」から「オプション機能」を開く。
「オプション機能」が一覧表示されるので「OpenSSHクライアント」が表示されない場合は「機能の追加」から追加する。
(最近は最初から追加されているように思う)

2.公開鍵・暗号鍵のペアを作成

 (1)"C:\Windows\System32\OpenSSH\ssh-keygen.exe"を実行
 (2)「Enter file in which to save the key」と言ってくるので保存場所
    を指定する。(デフォルトで良ければそのままEnter)
    (デフォルトはログオンユーザー配下の「.ssh」)
 (3)「Enter passphrase」と表示されるのでパスフレーズを使う場合は指定

3.公開鍵ファイルをサーバーに送る

 手段は何でも良いが、差し当たってSCPで送る場合は
 scp  送信ファイル  ユーザー@接続先サーバー:パス
 といった感じで
 scp  $home\.ssh\id_rsa.pub  root@172.18.53.148:/etc/wk

4.公開鍵を配置

 (1)ログインユーザーのホームディレクトリに「.ssh」フォルダを作る
    mkdir  ~/.ssh
 (2)パーミッションを変更
    chmod  700  ~/.ssh
 (3)authorized_keysファイルを作成
    touch ~/.ssh/authorized_keys
 (4)パーミッションを変更
     chmod 600 ~/.ssh/authorized_keys
 (5)公開鍵をauthorized_keysに追加
    cat ~/id_rsa.pub >> .ssh/authorized_keys

5.PowerShellからSCPしてみる

  秘密鍵は「$home\.ssh」をデフォルトで参照してくれるらしい。
  別な場所に置く場合は「i」オプションでパスを指定する
  (次からはオプションなしでもそこを参照してくれるっぽい)

  scp  hoge.txt  root@172.18.53.148:/etc/wk