4
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?

More than 1 year has passed since last update.

windows端末上でのssh鍵のパーミッションを変更するバッチファイル

Last updated at Posted at 2020-10-07

windows端末上でssh鍵のパーミッション変更する

特に何も考えずにsshをしようとするとssh鍵のパーミッションで以下のようなエラーが起きた

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@         WARNING: UNPROTECTED PRIVATE KEY FILE!          @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions for 'id_rsa.pem' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.
Load key "id_rsa.pem": bad permissions
username@servername: Permission denied (publickey,gssapi-keyex,gssapi-with-mic).

windows端末にはchmodに相当するssh鍵のパーミッション変更のためのコマンドはない
git bashなどでchmodをしても上手くいかない

調べてみるとGUIで権限設定はできるらしい
https://qiita.com/reatoretch/items/4cc88097338145aa94ba
がコマンドラインでいろいろと完結したいのでバッチファイルを書いてみた。

作成したバッチファイル

※ 管理者権限が必要です

@echo off

if NOT %ERRORLEVEL% EQU 0 goto NotAdmin
if "%1"=="" goto NoArg
icacls %1 /inheritance:r
takeown /F %1

for /f "usebackq" %%t in (`whoami`) do set myName=%%t
echo %myName%
icacls %1 /grant "%myName%:F"
goto End

:NotAdmin
echo 管理者権限で実行してください
goto End

:NoArg
echo ファイル名を引数として与えて下さい

:End 

実行方法

  1. 上記内容を change_permission.cmd などとして保存
  2. 管理者権限でPowershellを開き上記ファイルの場所へ cd で移動
  3. ./change_permission.cmd <鍵ファイルのパス> として実行

ファイルの権限をすでにいじっているとうまくいかない可能性があると思うが基本的にはうまくいくとおもいます。
自分の環境では問題ありませんでした。

具体的には継承された権限をicaclsで無効化し

icacls %1 /inheritance:r

takeownで所有権を獲得

takeown /F %1

icaclsを使って自分にフルコントロールを与えている

icacls %1 /grant "%myName%:F"

ここ間違ってるよ、もっと簡単な方法知ってるよという方、是非ご教授お願い致します。
ありがとうございました

4
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
4
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?