web-dev-qa-db-ja.com

SSH鍵の許可Chmod設定?

私のマシンでSSHを使用して、自分のWebサイトとそのデータベースにアクセスする必要があります(シンボリックリンクを設定していますが、余談です)。

次の問題:次のコマンドを入力します:ssh-keygen -t dsa
公開/秘密DSAキーペアを生成します。デフォルト(/home/user/.ssh/id_dsa):そして、Enter passphraseを2回入力します

それから私はこれを取り戻します:

警告:保護されていないプライベートキーファイル!
'/ home/etc.ssh/id_rsa'の権限0755がオープンされすぎています。秘密鍵ファイルには他人がアクセスできないようにすることをお勧めします。この秘密鍵は無視されます。不正なアクセス許可:キーを無視:[VAR/LIB/SOMEWHEREのファイルパス]

これを回避するために、私は次に試しました

Sudo chmod 600 ~/.ssh/id_rsa         Sudo chmod 600 ~/.ssh/id_rsa.pub    

しかし、コンピューターがフリーズした直後に、再びログオンするとcould not find .ICEauthority error。私はこの問題を回避し、SSHファイルを削除しましたが、将来これらの問題を回避するために正しい権限を使用できるようにしたいと考えています。どのようにICEauthorityを設定する必要がありますか、SSHキーをどこに保存する必要がありますか?または、どのようなアクセス許可を付与する必要がありますか?仮想マシンを使用するのが最善でしょうか?

これはすべて非常に新しいものであり、私は非常に急な学習曲線にあります。

73
crissixpaul

chmod 600 ~/.ssh/id_rsa; chmod 600 ~/.ssh/id_rsa.pub(つまり、chmod u=rw,go= ~/.ssh/id_rsa ~/.ssh/id_rsa.pub)は正しいです。

chmod 644 ~/.ssh/id_rsa.pub(つまりchmod a=r,u+w ~/.ssh/id_rsa.pub)も正しいですが、chmod 644 ~/.ssh/id_rsa(つまりchmod a=r,u+w ~/.ssh/id_rsa)は正しくありません。公開鍵は公開することができます。重要なのは、秘密鍵が秘密であることです。

また、.sshディレクトリ自体は、あなただけが書き込み可能である必要があります:chmod 700 ~/.sshまたはchmod u=rwx,go= ~/.ssh。もちろん、それを読み取って、その中のファイルにアクセスできる必要があります(実行権限)。他の人が読むことができても直接害はありませんが、役に立ちません。

Sudoは必要ありません。 Sudoを使用して自分のファイルを操作しないでください。これは、間違いを引き起こすだけです。

.ICEauthorityに関するエラーは、表示するchmodコマンドとは関係ありません。偶然の一致か、表示されていない他のコマンドを実行したかのいずれかです。

    chmod 600 ~/.ssh/id_rsa
    chmod 600 ~/.ssh/id_rsa.pub

または

    # u: user        r: read
    # g: group       w: write
    # o: others      x: execute

    chmod u=rw,go= ~/.ssh/id_rsa ~/.ssh/id_rsa.pub

公開鍵を読み取り可能にすることもできます

    chmod 644 ~/.ssh/id_rsa.pub # chmod a=r,u+w ~/.ssh/id_rsa.pub

しかしnot秘密鍵。したがって、以下が必須です。

    chmod 600 ~/.ssh/id_rsa # chmod a=r,u+w ~/.ssh/id_rsa

またあなたの.sshディレクトリ自体は、あなただけが書き込み可能である必要があります:

    chmod 700 ~/.ssh

または

    chmod u=rwx,go= ~/.ssh

もちろん、それを読み取り、その中のファイルにアクセスできる必要があります(実行権限)。
他の人がそれを読むことができても、直接害はありませんが、それも役に立ちません。

Sudoは必要ありません。 Sudoを使用して自分のファイルを操作しないでください。これは、間違いを引き起こすだけです。

.ICEauthorityに関するエラーは、表示するchmodコマンドとは関係ありません。偶然の一致か、表示されていない他のコマンドを実行したかのいずれかです。

3
Scrooge McDuck

上記の回答に、ホームディレクトリ(~/)にも、755とその中のファイルの権限に関係なく、~/.sshの権限が必要であることを追加したいと思います。 (これはSynology NASにありましたが、すべてのLinuxに当てはまるとは限りません)

0
hoelk