
サーバーにログインできる追加のホストには新しいキーペアが必要です(ただし、セキュリティ上の理由から既存のキーペアを共有することはできません)。
サーバーでssh-keygen -t rsa -f newkey.key
正常に動作する新しいペアを作成し、そのキーをクライアントにコピーしてログインを使用しようとしましたが、ssh user@server -i newkey.key
ログインできません。代わりに、次のメッセージが表示されます。
$ ssh user@server -i newkey.key
Warning: Permanently added 'server' (ECDSA) to list ofknown hosts.
Permission denied (publickey).
$
なぜこれが起こり、どのように機能させることができますか?newkey.key
権限はに設定されます400
。
答え1
人々がキーベースの認証を設定しようとしたときに見られる最も一般的な問題の1つは、キーペアの公開部分をファイルに追加することを忘れてしまったことですauthorized_keys
。
server.example.com
公開/秘密鍵ペアを作成するとき -
user@server:~/ $ ssh-keygen -t rsa -f newkey.key
適切にパスワードを設定(または設定しない)します。
次に、共通の半分をauthorized_keys
ファイルに入れます。
user@server:~/ $ cat ~/.ssh/newkey.key.pub >> ~/.ssh/authorized_keys
その後、キーのプライベート部分をクライアントコンピュータにコピーすることで接続できます。
user@client:~/ $ ls -1 .ssh
authorized_keys
config
newkey.key
user@client:~/ $ ssh -i ~/.ssh/newkey.key user@server
編集する@Haxielと@RubberStampの(そして私自身の)プロトコルによると、秘密鍵はアクセスに使用されるサーバーに残してはいけません。
他の選択肢がない限り、接続に使用するサーバーから秘密鍵を削除します。これはセキュリティ上の問題を避けるのが非常に簡単です。
鍵はローカルシステムで生成し、公開鍵はscpまたはssh-copy-idを介してリモートシステムにコピーする必要があります。後者のオプションは、公開鍵がリモートの ~/.ssh に正しく配置されることを保証するので、好まれる。 /authorized_keys ファイルとファイルに対する適切な権限