0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Windows11で秘密鍵のパーミッションを使いやすくするPowershell関数

Posted at

Windowsから秘密鍵を使ってsshすると結構こうなります

> ssh user@hostname -i private_key
 :
Permissions for '.\\private_key' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.
Load key ".\\private_key": bad permissions

GUIからあれこれする方法もあるけれど面倒なのでこちら(Windows SSH: Permissions for 'private-key' are too open - Super User)を参考にPowershellの関数にしました。

function permission_key($key_path) {
  # Set Key File Variable:
  New-Variable -Name Key -Value "$key_path" # "$env:UserProfile\.ssh\id_rsa"

  # Remove Inheritance:
  Icacls $Key /c /t /Inheritance:d

  # Set Ownership to Owner:
  # Key's within $env:UserProfile:
  Icacls $Key /c /t /Grant ${env:UserName}:F

  # Key's outside of $env:UserProfile:
  TakeOwn /F $Key
  Icacls $Key /c /t /Grant:r ${env:UserName}:F

  # Remove All Users, except for Owner:
  Icacls $Key /c /t /Remove:g Administrator "Authenticated Users" BUILTIN\Administrators BUILTIN Everyone System Users

  # Verify:
  Icacls $Key

  # Remove Variable:
  Remove-Variable -Name Key
}

これを$profileあたりで宣言するとかしておきます。

使うと「処理できませんでした」と連発で出ますが、ちゃんと設定されます。

PS D:\(作業フォルダ)> permission_key(".\private_key")
処理ファイル: .\.vagrant\machines\default\virtualbox\private_key
1 個のファイルが正常に処理されました。0 個のファイルを処理できませんでした
処理ファイル: .\.vagrant\machines\default\virtualbox\private_key
1 個のファイルが正常に処理されました。0 個のファイルを処理できませんでした

成功: ファイル (またはフォルダー): "D:\(作業フォルダ)\private_key" は現在ユーザー "TONTORO-PC\(ユーザー名)" によって所有されています。
処理ファイル: .\private_key
1 個のファイルが正常に処理されました。0 個のファイルを処理できませんでした
処理ファイル: .\private_key
1 個のファイルが正常に処理されました。0 個のファイルを処理できませんでした
.\private_key TONTORO-PC\(ユーザー名):(F)

1 個のファイルが正常に処理されました。0 個のファイルを処理できませんでした
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?