私はこれが多くの人にとって基本的な質問であることを知っていますが、SSHサーバーへのパスワードのないログインをどのように設定しますか? Ubuntu Server Guideによると、自分のホスト(接続しているホスト)からキーペアを生成したサーバーにキーをインポートするだけです。その逆のことが起こりました。元々接続しようとしていたサーバー(Ubuntu)からホストシステム(macOS)にSSH経由で接続できます。それでもパスワードの代わりにパスワードを聞いてみましたね。ポイントは何ですか?私はここの指示に従いました。
https://help.ubuntu.com/community/SSH/OpenSSH/Keys
役に立たない。これがうまくいかない理由についての洞察を提供していただきありがとうございます。
ありがとう
答え1
コンピュータからキーを生成する必要があります。地元のマシンに公開鍵をサーバーに送信します。代わりに、Ubuntuサーバーに秘密鍵を設定し、Macに公開鍵を追加します。
~/.ssh/authorized_keys
まず、サーバーが自分のコンピュータにSSHで接続できないようにする必要があるため、サーバーのSSHキーを削除する必要があります。
キーを生成するには、ssh-keygen
ローカルコンピュータで実行できます。何をしているのかわからない場合は、すべてのオプションをデフォルト値のままにしてください。キーパスワードを入力してください。 SSH 鍵が暗号化され、盗難から保護されます。
システム管理者のヒント:
ssh-keygen -b 4096
より長い(より安全な!)キーを構築するためのものです。
鍵ペアを作成したら、接続するサーバーに公開鍵をアップロードする必要があります。デフォルトオプションを受け入れると、公開鍵を見つけることができます~/.ssh/id_rsa.pub
。このファイルの内容を取得して~/.ssh/authorized_keys
サーバーに追加します。
システム管理者のヒント:いずれにせよ、秘密鍵を誰にも、何にも提供しないでください。知られているプライベート鍵があるのには理由があります。
サーバーが正しく構成されている場合は、SSHキーを使用してログインするのに十分です。ただし、サーバーが正しく構成されていない可能性があります。/etc/ssh/sshd_config
ここに示されているものと正確に一致するように、サーバーに次の3行があることを確認してください。
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile %h/.ssh/authorized_keys
これらの行が存在しない場合、または上記のように表示されない場合、またはnano
同様のコマンドを使用してファイルを編集します。このファイルを編集するには管理者()権限が必要ですsudo
。設定を編集する必要がある場合は、SSHサービスの再起動を使用する必要がありますsudo systemctl restart ssh.service
。
システム管理者のヒント:
PasswordAuthentication
セキュリティを強化するために、そのno
行をinに変更してサーバー上のパスワード認証を無効にできます/etc/ssh/sshd_config
。
サーバー構成によっては、この手順が最も正確ではない可能性があります。管理者がいる場合は、管理者に連絡してください。指示は、プラットフォームまたは構成によって異なる場合があります。また、そのプラットフォームのコマンド選択肢に関する関連文書を確認してください(たとえば、ssh-keygen
WindowsではPuttyGenを代わりに使用してください)。
それでも問題が解決しない場合は、ログを詳しく調べる必要があります。 SSHを使用してサーバーに接続し、ssh -vvv user@host
サーバーのSSHログを表示します/var/log/auth.log
。