ssh connect Permission denied (publickey,gssapi-keyex,gss…

スポンサーリンク

ssh connect Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password) エラー解決ガイド

エラーの概要・症状

ssh接続時に「ssh connect Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password)」というエラーメッセージが表示されることがあります。このエラーは、SSH接続が拒否され、認証が失敗したことを示しています。通常、SSHキーやパスワードの設定に問題がある場合に発生します。

このエラーが発生する原因

このエラーが発生する主な原因は以下の通りです。

  • SSHキーの不一致: 使用しているSSHキーがサーバーに登録されていない、または誤ったキーが指定されている。
  • パーミッションの設定: SSHの設定ファイルやディレクトリのパーミッションが正しく設定されていない。
  • SSHエージェントの未起動: SSHエージェントが起動しておらず、鍵が認識されない。
  • 認証方式の不一致: SSH接続時に指定された認証方式がサーバー側と一致しない。

解決方法

以下に、具体的な解決方法をいくつか紹介します。

解決方法 1: SSHユーザーの確認

  1. コマンドを実行します:
    bash
    $ ansible-playbook --user=djuarezg -vvv ansible-playbook-test.yml
  2. SSHの引数やエラーメッセージを確認します。これにより、何が問題かを特定できる場合があります。

解決方法 2: SSHキーの生成と設定

  1. SSHディレクトリに移動します:
    bash
    $ cd /root/.ssh
  2. 新しいSSHキーを生成します:
    bash
    $ ssh-keygen -t rsa
  3. 公開鍵を表示します:
    bash
    $ cat id_rsa.pub
  4. authorized_keysに公開鍵を追加します:
    bash
    $ sudo nano authorized_keys
  5. Ansibleで接続をテストします:
    bash
    $ ansible all -m ping -u root

解決方法 3: SSHエージェントの確認

  1. 現在のSSHキーを確認します:
    bash
    $ ssh-add -l
  2. SSHキーを追加します:
    bash
    $ ssh-add ~/.ssh/<private_key_file>
  3. これにより、SSHキーがエージェントにロードされているか確認します。

解決方法 4: Ansible設定ファイルの編集

  1. Ansibleの設定ファイルを作成または編集します:
    ini
    [defaults]
    private_key_file = /Users/username/.ssh/private_key
  2. プレイブック内でSSHプライベートキーを指定します:
    yaml
    vars:
    ansible_ssh_private_key_file: "/home/ansible/.ssh/id_rsa"
  3. Ansibleプレイブックを実行します:
    bash
    ansible-playbook -vvvv --private-key=/Users/you/.ssh/your_key playbookname.yml

解決方法 5: プレイブックにユーザーを追加

  1. プレイブックファイル(例えば、deploy.yml)を編集します:
    “`yaml

  • hosts: all
    remote_user: root
    tasks:

    • name: ping
      action: ping
      “`
  • これにより、リモートユーザーが指定され、接続が成功する可能性があります。

解決方法 6: SSHキーの転送設定

  1. SSHキーをauthorized_keysに追加します:
    bash
    cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
  2. SSH接続時に認証を転送します:
    bash
    ssh -A <username>@<hostname>

エラーの予防方法

  • SSHキーの管理: 定期的にSSHキーを確認し、不要なキーを削除します。
  • ファイルのパーミッション設定: ~/.sshディレクトリのパーミッションを700authorized_keysファイルのパーミッションを600に設定します。
  • SSHエージェントの使用: SSHエージェントを常に使用し、必要な鍵を事前に追加しておきます。

まとめ

「ssh connect Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password)」というエラーは、SSH接続の認証に関連する問題です。上記の解決方法を試すことで、問題を解決できる可能性が高いです。SSHキーや設定の確認を行い、適切な手順を踏むことで、スムーズに接続できるようにしましょう。

コメント

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