2012-01-24 23 views
2

AFSでマウントされたホーム・ディレクトリを持つOS Xマシンからgitolite管理のgitサーバーへのアクセスを設定しようとしています。 UNIXの権限はAFSによって無視され、問題を理解した上で、すべての権限を666に設定して、Finderがファイルをローカルで開くことができるようにするAFSのOS X権限偽造の修正が行われています。AFSマウントされたホーム・ディレクトリからのSSH公開鍵/秘密鍵の認証

あなたはsshが秘密鍵が(パーミッションが実際にAFSのACLによって管理されているので、それはありません)あまりにも表示されていると考えているので、あなたが

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 
@   WARNING: UNPROTECTED PRIVATE KEY FILE!   @ 
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 
Permissions 0666 for '$HOME/.ssh/id_dsa' are too open 

を取得gitのサーバーへの認証を試みます。 chmodは、ローカルのUNIX権限には影響しません。

ここで私はそれを発見した問題についてNabbleスレッドは多くの助けではなかったのです。

http://old.nabble.com/User-friendly-Mac-OS-X-patch-causes-SSH-hardship-tt8851573.html#a8851573

は、誰もが周りの仕事を知っていますか? .sshのパーミッションを700のようなものに偽造するためにとにかくありますか?

+0

Ahhh、good ol 'AFS(私は20年近く前の大学ではじめてAFSを学びました)。とにかく、AFSディレクトリーの.sshからローカル・マシンのディレクトリーへのシンボリック・リンクを作成できますか?あなたは間違いなくAFSのあなたの認証された自己トークン以外の人に秘密鍵を利用させたくない*ではありません。 –

+0

こんにちはマイケル、あなたのコメントのおかげで。私はCMUにいます。ここでAFSは基本的にアーキテクチャの一部です。そしてそれによって、私はシステムアーキテクチャだけでなく物理的なアーキテクチャを意味します。私は建物がなくても落ちるだろうと確信しています。残念ながら、たとえ実際の秘密鍵がどこか安全であったとしても、シンボリックリンク自体は許可666を持つので、シンボリックリンクの作成は役に立たないでしょう。 –

答えて

0

指定したIDファイルを使用するように/ etc/ssh_configファイルを変更できます。おそらく、このような何かを挿入:

Host <gitolite-server-host> 
    IdentityFile <identity-file-location> # this defaults to your ~/.ssh/id_rsa 
    User <gitolite-username> 
+0

これはあなたがただ1台のマシンから接続しようとしていると仮定します – Guy

0

のOpenSSH sshユーティリティの6.6バージョンから、関連するソースコードは以下の通りです。基本的に、sshを実行しているユーザがファイルを所有している場合、sshはキーファイルを0600モード(またはより制限的)にする必要があります。ファイルが他のIDによって所有されている場合は、そのファイルを読み取るためのアクセス許可を持つことができます。

したがって、別のアカウントに属するキーファイルを使用してこの制限を回避することができます。それはあまり役に立たないと私は気づいています。

誰かが必要なスキルを持っている場合は、portable source codeからsshのカスタマイズバージョンを作成するのがより現実的な解決策になります。

if (fstat(fd, &st) < 0) 
      return 0; 
    /* 
    * if a key owned by the user is accessed, then we check the 
    * permissions of the file. if the key owned by a different user, 
    * then we don't care. 
    */ 
#ifdef HAVE_CYGWIN 
    if (check_ntsec(filename)) 
#endif 
    if ((st.st_uid == getuid()) && (st.st_mode & 077) != 0) { 
      error("@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@"); 
      error("@   WARNING: UNPROTECTED PRIVATE KEY FILE!   @"); 
      error("@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@"); 
      error("Permissions 0%3.3o for '%s' are too open.", 
       (u_int)st.st_mode & 0777, filename); 
      error("It is required that your private key files are NOT accessible by others."); 
      error("This private key will be ignored."); 
      return 0; 
    } 
    return 1; 
関連する問題