Git salt sshアクセス(rootで実行)を使用しようとしています。エラーは常に次のとおりです。
許可が拒否されました(公開鍵)。
rootユーザーでsshコマンドを実行することで、問題を再現することができましたsimulating saltが何をしているのか、そして次に、Sudo(まだrootアカウントにあります)を使用した同じコマンドで、同じエラーが発生します。
これは成功します:
root @ server:/ src#ssh -T [email protected]
xXXXとしてログインしました。
これは失敗します:
root @ server:/ src#Sudo ssh -T [email protected]
許可が拒否されました(公開鍵)。
権限は明らかに正しいです:
ls -la ~/.ssh
total 32
drwx------ 2 root root 4096 Jun 2 12:18 .
drwx------ 12 root root 4096 Jun 2 12:10 ..
-rw------- 1 root root 550 Jun 1 16:31 authorized_keys
-r-------- 1 root root 83 Jun 2 12:18 config
-rw------- 1 root root 134 Jun 1 18:18 environment
-rw------- 1 root root 1679 May 26 2015 id_rsa
-rw-r--r-- 1 root root 393 Aug 3 2014 id_rsa.pub
-rw-r--r-- 1 root root 3984 Jun 2 10:19 known_hosts
失敗したコマンドに-v
を追加すると、最後まですべてが良好であることが示され、失敗するまでエラーは発生しません。
...
debug1: Authentications that can continue: publickey
debug1: Next authentication method: publickey
debug1: Offering RSA public key: /root/.ssh/id_rsa
debug1: Server accepts key: pkalg ssh-rsa blen 279
debug1: key_parse_private2: missing begin marker
debug1: read PEM private key done: type RSA
debug1: Authentications that can continue: publickey
debug1: No more authentication methods to try.
Permission denied (publickey).
パーミッションに関連するものだけを検索して見つけましたが、rootで実行するとSudoが失敗することを説明するものは何もありません。
どういうわけかそれはid_rsa.pubファイルに関連していました。 rootユーザーの場合は問題ありませんでしたが、Sudoからrootの場合は、明らかに機能しません。
おそらく、これをブロックするのはrootの特定のケースであるか、推奨される許可またはグループ構成以外の別の特別な許可が必要な場合があります。
「解決策」は、公開鍵ファイルを削除することでした。
@Sergeがコメントで指摘したように、この行
debug1: Offering RSA public key: /root/.ssh/id_rsa
ssh -v出力では、sshが自分のユーザーディレクトリ(/ home/yourusername)ではなく、rootのホームディレクトリ(/ root)の公開鍵で認証を試みたことを示しています。
これにより、3つのオプションが残ります。あなたはどちらかをすることができます
-i
オプションを指定してsshを実行し、sshが使用するキーを明示的に指定します(例:ssh -i /home/yourusername/.ssh/id_rsa ...
)、ただし、セットアップを再考することをお勧めします。 SSHは、マシン上でroot権限を必要とせず、rootがリモートエンドでも何も取得しないため、SSHを実行します。