sshキーファイルのアクセス許可チェックをバイパスする


29

秘密キーファイルとその他の機密データを含む暗号化されたFATボリューム(互換性のため)があります。

秘密鍵を使用してSSH経由でサーバーに接続したいのですが、もちろん、FATはファイルのアクセス許可をサポートしていないため、アクセス許可が開いているというキーを無視します。

そのため、現在、0600のアクセス許可でハードドライブの別の場所にコピーして、使用してから安全に消去していますが、それは苦痛です。

この非常にssh / scpコマンドラインでパーミッションチェックをバイパスする方法はありますか?

編集:精度:OS XではTrueCryptボリュームでした。

解決策:以下の受け入れられた答えは私の問題を解決しました(Mac OS XでTrueCryptボリュームにあるSSHキーファイルを使用)が、それは回避策です。「キーファイルのアクセス許可チェックをバイパスする」方法がないように見えます。

回答:


18

私の知る限り、sshまたはssh-addを使用してキーファイルのアクセス許可チェックをバイパスする方法はありません(名前付きパイプなどを使用してそれをだますことはできません)。それに、実際にはsshをだますのではなく、キーファイルを使用できるようにするだけです。

実際、TrueCryptボリュームはデータをプライベートに保つためのものであるため、ボリュームを誰でも読み取り可能なようにマウントする(TrueCryptのデフォルトの動作)ことは実際には最適ではありません。FAT形式のボリュームを使用している場合、Dan Carleyが提案したように、マウントオプションを実際に調整する必要があります。

TrueCrypt for OS Xではマウントオプションはまだ正しくサポートされていませんが(コマンドラインインターフェイスとmanページからマウントオプションを使用してTCを起動した場合でも-既に試されています)、OS Xはボリューム名に基づいたマウントオプションのデフォルトをサポートします。

ユーザーID(コンピューターの最初/唯一のユーザーである場合は通常501)を知る必要があります。「id -u」で取得できます。

ボリューム名が "PRIVATE"(ボリューム名は大文字)であり、uidが501である場合、この行を/ etc / fstabに追加するだけです。

LABEL=PRIVATE none msdos -u=501,-m=700

このファイルを作成/編集するには、rootになる必要があります(デフォルトのOSXインストールには存在しません)。

sudo vim /etc/fstab

次回ボリュームをマウントすると、アクセス権700と所有者ID 501が付与されます。

これはUSBドライブでも機能します(通常はFATでもフォーマットされています)。


完全に動作し
ます

この方法で適切な権限を取得するためにFAT形式のボリュームを取得できませんでした。ただし、「Mac OS拡張」を選択し、他のオペレーティングシステムにマウントするオプションを選択すると、chmodで権限を設定できます。
emptyset 14年

これは見事に機能しました。セキュアボリュームをマウントするとき、ホームディレクトリの特定のポイントにマウントします。'none'の値をマウントポイントの明示的な名前に置き換える必要があることがわかりました。
オタクのアレック

1
これは何も存在しない場合でも動作します/etc/fstab、新しいOS X.だけ上のファイルが新しい作成etc/fstab上記でファイル
iggie

33

stdinからキーを追加するとうまくいきました:

cat /path/to/id_rsa | ssh-add -k -

1
なぜこれに1つの賛成票がないのですか?マウントせずにそのまま動作し、とにかくssh-agentを使用していますよね?
-pscheit

4
チャームのように動作します
-hdave

1
これで私は夢中になりました。WSLUbuntuを使用します。ありがとう!
mydoglixu

7

クレイジーな回避策として、プライベートキーを含むext2ボリュームのディスクイメージを作成し、ループデバイスとしてマウントし、そこからsshキーを使用できます。

1MBの空のファイルを作成します。

dd if=/dev/zero of=diskimg bs=1024 count=1024

ext2をフォーマットします(デバイスではないと表示されたらYを押します):

mke2fs diskimg

(rootとして)どこかにマウントします:

mount -t ext2 -o loop diskimg /my/path/to/diskimg

これで、権限を設定できる小さなext2ファイルシステムができました。マウントするスクリプトを作成し、それらの権限が、使用しているシステムに基づいて正しいUID / GIDを持っていることを確認できます(UIDが一致しない可能性があるため)。また、sudo / rootアクセスが必要です。


何のシンプルなオプションがないように思える
私のinstanceof

1
それはとても間違っています-しかし、非常にクールです:)
ウォーレン

1
@ウォーレン:私はそれを「クレイジー」で序文しました。:-D
カイル・スミス

2

(およびreload / restart sshd)に追加StrictModes noするのはどう/etc/ssh/sshd_configですか?

編集:おっと、このオプションはサーバー側のみです:/


1

正しく思い出せば、ssh-agentキーの許可をチェックしません。したがって、これはうまくいくかもしれません:

[-S "$ SSH_AUTH_SOCK"] || eval $(ssh-agent)
ssh-add path / to / id_rsa

参考までに、これは機能しません。 ssh-addファイルの許可を確認します。
カイルスミス

0

マウントオプション(umaskuidおよびgid)を変更して変更できますか?


私の唯一のオプションは、読み取り専用としてマウントすることであり、sshはまだ0777だと文句を言い
ます
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.