sdoing ssh 문제 - `sudo ssh ...` 실패

sdoing ssh 문제 - `sudo ssh ...` 실패

git salt SSH 액세스(루트로 실행)를 사용하려고 합니다. 오류는 항상 다음과 같습니다.

권한이 거부되었습니다(공개 키).

문제를 재현하는데 성공했습니다.시뮬레이션소금은 무엇을 하고 있을까요?뿌리user 그런 다음 동일한 명령을 사용하십시오.스도(아직 루트 계정에 있음) 동일한 오류가 발생합니다.

이것은 효과가 있었습니다:

루트@서버:/src#SSH-T[이메일 보호됨]

XXXX로 로그인하세요.

실패합니다.

루트@서버:/src#sudo ssh -T[이메일 보호됨]

권한이 거부되었습니다(공개 키).

권한은 분명히 정확합니다.

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

failed 명령에 추가하면 -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).

검색해서 권한과 관련된 내용만 찾았는데 루트로 실행할 때 sudo가 실패하는 것에 대한 설명은 없습니다.

답변1

@Serge가 주석에서 지적했듯이 이 줄은

debug1: Offering RSA public key: /root/.ssh/id_rsa

ssh -v 출력에서 ​​알 수 있는 것은 ssh가 자신의 사용자 디렉터리(/home/yourusername) 대신 루트의 홈 디렉터리(/root)에 있는 공개 키를 사용하여 인증을 시도하고 있다는 것입니다.

그러면 세 가지 옵션이 남습니다. 당신은 할 수

  • ssh를 실행하고 -issh가 사용할 키를 명시적으로 지정하도록 선택합니다(예 ssh -i /home/yourusername/.ssh/id_rsa ...: ).
  • 루트에 대한 새 SSH 키를 생성하고 이를 원격 키 또는 인증된 키에 추가합니다.
  • 자신의 .ssh 디렉터리를 /root에 복사하거나 연결하세요.

그러나 설정을 다시 생각해 볼 수도 있습니다. SSH는 컴퓨터에 대한 루트 권한이 필요하지 않으며 루트로 실행해도 원격 측에 대한 정보가 제공되지 않습니다.

답변2

어느 정도 관련이 있다id_rsa.pub문서. 루트 사용자에게는 문제가 되지 않지만 루트를 통한 sudo의 경우 분명히 작동하지 않습니다.

아마도 이를 방지하는 루트의 특별한 상황이 있거나 권장 권한이나 그룹 구성 대신 다른 특별한 권한이 필요할 수도 있습니다.

"해결책"은 공개 키 파일을 삭제하는 것입니다.

답변3

sudoer 파일을 확인하고 루트 권한이 있는 사용자를 추가해야 할 것 같습니다. sudoers 파일은 다음 위치에 있습니다( /etc/sudoersLinux 기반에 따라 다름). sudo 명령을 사용할 때 사용자가 따라야 하는 규칙이 포함되어 있습니다.

Linux/Unix 버전에 적합한 suoders를 읽어보세요. 온라인에서 확실히 도움이 될 많은 자료를 얻을 수 있습니다.

https://www.garron.me/en/linux/visudo-command-sudoers-file-sudo-default-editor.html

관련 정보