SSHキーパーミッションChmod設定?


63

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

次の問題:コマンドを入力します:ssh-keygen -t dsa
公開/秘密のdsaキーペアを生成します。デフォルト(/home/user/.ssh/id_dsa)で保存します。Enterパスフレーズを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キーをどこに保存する必要がありますか?仮想マシンを使用するのが最善でしょうか?

これはすべて非常に新しく、私は非常に急な学習曲線にいるので、どんな助けもありがたいです。


タイプミス-キーが1セットだけ生成されました!
crissixpaul

.ssh dirへのアクセス許可は、キーのアクセス許可と同様に重要です。600になります。修正するには、次を実行しますchmod -R 600 ~/.ssh
クブブフェトウィッツ

4
実際には、.sshディレクトリのアクセス許可は600ではなく700である必要があります。実行アクセス許可は、そのディレクトリ内にあるものへのアクセスを許可するアクセス許可です。したがって、正しいコマンドは次のようにchmod 700 $HOME/.sshなります。chmod 600 $HOME/.ssh/id_rsa
MelBurslan

.ICEauthorityに関するエラーは、chmod表示するコマンドとは関係ありません。それは偶然か、見せていない他のコマンドを実行したかのどちらかです。
ジル 'SO-悪であるのをやめる'

回答:


92

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。もちろん、それを読み取って、その中のファイルにアクセスできる必要があります(実行許可)。他の人が読むことができれば直接害はありませんが、どちらも役に立ちません。

必要ありませんsudosudo自分のファイルを操作するために使用しないでください。ミスを引き起こす可能性があります。

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


〜/ .ssh / known_hostsのパーミッションは何に必要ですか?
nikc

0

上記の回答に追加したいのは、自分のホームディレクトリ(~/755のパーミッション~/.sshとその中のファイルに関係なく、パーミッションも必要であるということです。(これはSynology NAS上にあり、すべてのLinuxに適用されるわけではありません)

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.