2010-11-26 22:04:58 +0000 2010-11-26 22:04:58 +0000
411
411

.sshフォルダ内の秘密鍵のパーミッションは?

.sshフォルダ内のパーミッションを変更したところ、私の秘密鍵を使用するソフトウェアを使用する際に、毎回パスワードを入力しなければならなくなりました。私のid_rsaファイルのパーミッションは、それを使用するアプリを使用するたびにパスワードを入力する必要がないようにするためには、どのようにすべきでしょうか?

現在、私のパーミッションは次のように設定されています:

-rw-------@ 1 Jody staff 114 Nov 4 23:29 config
-rw------- 1 Jody staff 1743 Oct 21 2009 id_rsa
-rw-------@ 1 Jody staff 397 Oct 21 2009 id_rsa.pub 
-rw-------@ 1 Jody staff 3855 Sep 13 22:35 known_hosts

回答 (4)

93
93
93
2015-06-09 20:39:45 +0000

私はこれにずっと悩んでいて、ようやく何が必要なのかがわかりました。サーバ上でログインしたいSSHのユーザ名をいたるところで$USERに置き換えてください。もしあなたがrootでログインしようとしているのなら、非ルートユーザーのための方法である/root/.sshの代わりに/home/root/.sshなどを使う必要があるでしょう。などを使う必要があります。

  • サーバ上のホームディレクトリは他の人が書き込み可能にしてはいけません: chmod go-w /home/$USER
  • サーバ上のSSHフォルダには700のパーミッションが必要です: chmod 700 /home/$USER/.ssh
  • Authorizedkeysファイルには644のパーミッションが必要です: `chmod 644 /home/$USER/.ssh/authorizedkeys`
  • ファイル/フォルダはuserが所有しているのではなく、rootが所有していることを確認してください。chown user:user authorized_keyschown user:user /home/$USER/.ssh -生成された公開鍵(ssh-keygenからの)をサーバ上のユーザのauthorized_keysファイルに置く -ユーザのホームディレクトリが、あなたが期待するものに設定されていることと、あなたが修正してきた正しい.sshフォルダが含まれていることを確認してください。そうでない場合は、usermod -d /home/$USER $USER を使用して問題を修正してください
  • 最後に、ssh を再起動します: service ssh restart
  • その後、クライアントがローカルユーザの .ssh フォルダに公開鍵と秘密鍵のファイルを持っていることを確認し、ログインします: ssh user@host.com
37
37
37
2013-01-03 03:50:21 +0000

また、ホームディレクトリが他のユーザから書き込み可能にならないようにしてください。

6
6
6
2010-11-26 22:07:13 +0000

パーミッションはこれとは関係ないはずです。秘密鍵はパスワードと一緒に暗号化されていますので、秘密鍵を復号化して使えるようにするためにはパスワードを入力する必要があります。

4
4
4
2014-04-17 20:20:44 +0000

Felipe さんの言う通りです – .ssh ディレクトリを含むディレクトリは、グループや他の人が書き込み可能なものであってはなりません。したがって、chmod go-w ~ を実行した後に、 ssh-keygen コマンドでパスフレーズを割り当てておらず、 .ssh ディレクトリがホームディレクトリにあると仮定して、 ssh を実行したときにパスワードを要求される場合には、 ssh-keygen -t rsa; cp ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys を試すのが次の論理的な方法です。

関連する質問

6
10
12
8
14