パブリックストアにプライベートファイルを保持しないように、CI環境のスクリプトの一部として変数からSSHキーをロードするスクリプトがありますが、ssh-add
権限エラーについて文句を言います。周りを見渡せないようです。)。だから私のアプローチは、動的に生成された匿名パイプの権限を変更する方法を見つけることでした。
たとえば、
$ stat <(:)
File: ‘/dev/fd/63’
Size: 0 Blocks: 0 IO Block: 512 fifo
Device: 397f3928h/964639016d Inode: 818277067 Links: 0
Access: (0660/prw-rw----) Uid: ( 501/ kenorb) Gid: ( 20/ staff)
Access: 2015-10-10 22:33:30.498640000 +0100
Modify: 2015-10-10 22:33:30.498640000 +0100
Change: 2015-10-10 22:33:30.498640000 +0100
Birth: 2015-10-10 22:33:30.498640000 +0100
権限を表示します0660
。私は確認してみましたが、umask
あまり関係はないようです。
これは簡単なテストです(デフォルトではOS X、0660)。
$ ssh-add <(cat ~/.ssh/id_rsa)
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: UNPROTECTED PRIVATE KEY FILE! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0660 for '/dev/fd/63' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.
0500
Linuxではデフォルトで動作しているようです。この権限はどこで制御されますか?
明らかに、匿名パイプを使用したいので、ファイルの権限を変更したくありません。
問題は次のとおりです。
パイプの権限を一時的に変更する方法は?
ベストアンサー1
これまで、名前付きFIFOを使用して次の解決策を見つけました。
$ mkfifo -m 600 fifo
$ cat ~/.ssh/id_rsa >fifo | ssh-add fifo
Identity added: fifo (fifo)
このオプションは-m
FIFO権限を設定します。