linux – .ssh フォルダ内の秘密鍵に許可を与えるか?

file-permissions linux macos permissions

.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

  455  None  2010-11-26


ベストアンサー

一般的には、許可が必要になります

  • .sshディレクトリ。700 (drwx------)
  • 公開鍵(.pubファイル)。644 (-rw-r--r--)
  • 秘密鍵(id_rsa)を使用します。600 (-rw-------)
  • 最後に、ホームディレクトリはグループや他の人が書き込み可能なものであってはいけません (最大でも 755 (drwxr-xr-x))

cdhowie の応答は、鍵を生成するときにパスワード/パスフレーズを設定することを前提としており、もしそうした場合、彼が言うように、あなたは ssh エージェントを使用しない限り、毎回パスワードを入力する必要があります

757  None  2010-11-26


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

  • サーバ上のホームディレクトリは、他の人が書き込み可能な状態にしてはいけません。chmod go-w /home/$USER
  • サーバ上のSSHフォルダには700のパーミッションが必要です。chmod 700 /home/$USER/.ssh
  • Authorized_keysファイルには644のパーミッションが必要です。chmod 644 /home/$USER/.ssh/authorized_keys
  • 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

103  Alex W  2015-06-09


また、あなたのホームディレクトリが他のユーザから書き込み可能なものでないことを確認してください

chmod g-w,o-w ~

37  Felipe Alvarez  2013-01-03


権限は関係ないはずです。秘密鍵はパスワードで暗号化されているので、秘密鍵を復号して使えるようにするにはパスワードを入力する必要があります

復号化された鍵をキャッシュして、それを必要とするアプリケーションに提供する ssh エージェントの実行を検討してみてはいかがでしょうか

7  cdhowie  2010-11-26


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

5  mikentalk  2014-04-17


私はパーミッションに翻訳された男のページの推奨事項を見たかったので、別の答えとしてこれを投稿しています

男性ページの引用を元にしたまとめ(最後にリンクしています

+------------------------+-------------------------------------+-------------+-------------+
| Directory or File      | Man Page                            | Recommended | Mandatory   |
|                        |                                     | Permissions | Permissions |
+------------------------+-------------------------------------+-------------+-------------+
| ~/.ssh/                | There is no general requirement to  | 700         |             |
|                        | keep the entire contents of this    |             |             |
|                        | directory secret, but the           |             |             |
|                        | recommended permissions are         |             |             |
|                        | read/write/execute for the user,    |             |             |
|                        | and not accessible by others.       |             |             |
+------------------------+-------------------------------------+-------------+-------------+
| ~/.ssh/authorized_keys | This file is not highly sensitive,  | 600         |             |
|                        | but the recommended permissions are |             |             |
|                        | read/write for the user, and not    |             |             |
|                        | accessible by others                |             |             |
+------------------------+-------------------------------------+-------------+-------------+
| ~/.ssh/config          | Because of the potential for abuse, |             | 600         |
|                        | this file must have strict          |             |             |
|                        | permissions: read/write for the     |             |             |
|                        | user, and not accessible by others. |             |             |
|                        | It may be group-writable provided   |             |             |
|                        | that the group in question contains |             |             |
|                        | only the user.                      |             |             |
+------------------------+-------------------------------------+-------------+-------------+
| ~/.ssh/identity        | These files contain sensitive data  |             | 600         |
| ~/.ssh/id_dsa          | and should be readable by the user  |             |             |
| ~/.ssh/id_rsa          | but not accessible by others        |             |             |
|                        | (read/write/execute)                |             |             |
+------------------------+-------------------------------------+-------------+-------------+
| ~/.ssh/identity.pub    | Contains the public key for         | 644         |             |
| ~/.ssh/id_dsa.pub      | authentication.  These files are    |             |             |
| ~/.ssh/id_rsa.pub      | not sensitive and can (but need     |             |             |
|                        | not) be readable by anyone.         |             |             |
+------------------------+-------------------------------------+-------------+-------------+

すべてのマンページの引用は、http://linuxcommand.org/lc3_man_pages/ssh1.htmlからです

4  Ashutosh Jindal  2020-06-11


タイトルとURLをコピーしました