web-dev-qa-db-ja.com

sshのsudoingに関する問題-`Sudossh ... `が失敗する

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が失敗することを説明するものは何もありません。

3
Efren

どういうわけかそれはid_rsa.pubファイルに関連していました。 rootユーザーの場合は問題ありませんでしたが、Sudoからrootの場合は、明らかに機能しません。

おそらく、これをブロックするのはrootの特定のケースであるか、推奨される許可またはグループ構成以外の別の特別な許可が必要な場合があります。

「解決策」は、公開鍵ファイルを削除することでした。

0
Efren

@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 ...)、
  • Root用の新しいsshキーを作成し、それをリモートの承認済みキーに追加するか、
  • 独自の.sshディレクトリを/ rootにコピーまたはリンクします

ただし、セットアップを再考することをお勧めします。 SSHは、マシン上でroot権限を必要とせず、rootがリモートエンドでも何も取得しないため、SSHを実行します。

5
Niautanor