私のサーバーでパスワードと公開鍵認証の両方を使用できます。明示的に指定されたキーを使用してクライアントからログインできます。
ssh user@host -i id_rsa
鍵ファイルを指定しない場合は、パスワードの入力を求められます。しかし、デフォルトではキーファイルを使用してログインしたいと思います。
~/.ssh/configにいくつかの内容を入れることができるヒントを見つけました。だから、次のように指定しました。
Host xxx
IdentityFile ~/.ssh/id_rsa
IdentitiesOnly yes
User uuu
構成が解釈されます。ユーザー "uuu"を使用しますが、キーファイルはまだ無視されます。 sshにデフォルトでそれを使用させるにはどうすればよいですか?
答え1
ファイルモードが0600()のディレクトリ~/.ssh
と秘密鍵がある場合は自動的に使用され、公開鍵認証が失敗した場合にのみパスワードが必要です。これらの条件がすべて満たされていることを確認してください。このオプションは通常、認証が必要な場合に使用されます。id_rsa
~/.ssh
-rw-------
ssh
-i
その他キー。
答え2
構成ファイルは次のようにする必要があります。
Host xxx
User user
IdentityFile ~/.ssh/id_rsa
ファイルが正しいことを確認する必要があります。
~/.ssh/id_rsa : rwx------
リモートホストから:
/home/user
: グループおよび他のユーザーは書き込み権限を持っていません。/home/user/.ssh
:rwx------
リモートホストのログファイルを確認すると、いくつかのエラーメッセージが表示されます。
tail -f /var/log/auth.log
答え3
SSHをサポートするサーバーがあり、サーバーに接続するクライアントがあると仮定すると、クライアントコンピューターで秘密鍵と公開鍵を生成し、そのサーバーに公開鍵をコピーする必要があります。
これを行う前に、SSHサーバーがクライアント認証キーを探している場所を確認する必要があります。 SSHサーバー構成ファイル/etc/ssh/sshd_configを確認し、次の行を見つける必要があります。
AuthorizedKeysFile .ssh/authorized_keys
これは、サーバーがauthorized_keys
各ユーザーのホームディレクトリにあるfileという.ssh
フォルダから、そのユーザーにログインを許可する公開鍵を検索することを意味します。
クライアントが生成したSSHキーを使用したと言ったように、ログインしたいauthorized_keys
ユーザーの公開鍵の内容をサーバーのファイルにコピーする必要があります。
これを単純化するための手順は次のとおりです。
- 手順については、サーバーを検索してください
AuthorizedKeysFile
。/etc/ssh/sshd_config
- クライアントから秘密鍵と公開鍵を生成します(すでに実行しています)。
authorized_keys
ログインしたいユーザーのクライアント公開鍵の内容をサーバー上のファイルにコピーします。ユーザーとしてログインするには、username
公開鍵をファイルにコピーする必要があります/home/username/.ssh/authorized_keys
(ファイルがない場合は作成する必要があります)。
お役に立てば幸いです。
答え4
みんなありがとうございます。これはssh-agentに問題があるようです。再起動後、すべてが正常です。サーバーで許可されているログイン方法が変更された場合、一部の構成はすぐに更新されないようです。