web-dev-qa-db-ja.com

.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
356
Jody G

通常、権限は次のようにします。

  • .sshディレクトリ:700 (drwx------)
  • 公開鍵(.pubファイル):644 (-rw-r--r--)
  • 秘密鍵(id_rsa):600 (-rw-------)
  • 最後に、あなたのホームディレクトリはグループや他の人が書き込めないようにすべきです(せいぜい755 (drwxr-xr-x))。

私はあなたがあなたが毎回あなたのシステム/ユーザパスワードを入力しなければならないことを意味していると仮定しています、そして以前はあなたがそうする必要はありませんでした。 cdhowieの回答は、鍵を生成するときにパスワード/パスフレーズを設定したと仮定しています。その場合は、sshエージェントを使用しない限り、毎回パスワードを入力する必要があります。

596
tab33

私は永遠にこれに苦労していました、そしてついに必要なものを考え出しました。 $USERを、サーバー上でログインしたいSSHユーザー名に置き換えます。あなたがrootとしてログインしようとしているのであれば、root以外のユーザのための方法である/root/.sshの代わりに/home/root/.sshなどを使用する必要があります。

  • サーバー上のホームディレクトリは他の人が書き込み可能であってはいけません:chmod go-w /home/$USER
  • サーバー上のSSHフォルダーには700のアクセス許可が必要です。chmod 700 /home/$USER/.ssh
  • Authorized_keysファイルには644のアクセス許可が必要です:chmod 644 /home/$USER/.ssh/authorized_keys
  • userrootではなく、ファイル/フォルダーを所有していることを確認してください:chown user:user authorized_keysおよびchown user:user /home/$USER/.ssh
  • 生成された公開鍵(ssh-keygenから)をサーバー上のユーザーのauthorized_keysファイルに入れます。
  • ユーザーのホームディレクトリが期待どおりに設定されていることと、変更した正しい.sshフォルダが含まれていることを確認します。そうでない場合、問題を解決するためにusermod -d /home/$USER $USERを使用して下さい
  • 最後に、sshを再起動します。service ssh restart
  • 次に、クライアントがローカルユーザーの.sshフォルダーに公開鍵ファイルと秘密鍵ファイルを持っていることを確認して、ログインします。ssh [email protected]
82
Alex W

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

chmod g-w,o-w ~

35
Felipe Alvarez

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

あなたはsshエージェントを実行することを検討するかもしれません。そして、それは解読されたキーをキャッシュすることができて、それらを必要とするアプリケーションにそれらを供給します。

5
cdhowie

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

4
mikentalk