시도하면 조회 키가 가 아니기 sudo ssh ...
때문에 권한이 거부되었습니다 . 하지만 아직 설정되어 있으므로 들어가서 살펴보는 것이 어떨까요 ?ssh
/root/.ssh
/home/me/.ssh
$HOME
/home/me
ssh
$HOME/.ssh
답변1
ssh
무시하면 $HOME
사용자 데이터베이스를 기반으로 홈 디렉터리를 가져옵니다.진짜uid 1개( pw_dir
반환된 구조 필드 사용 getpwuid()
)
ssh
위와 같이 파일을 쓸 수 있다는 점을 고려하면 거기에 루트 소유 파일이 생기기 known_hosts
때문에 그렇게 하지 않는 것이 가장 좋습니다 ./home/me/.ssh
항상 인증 프록시를 사용 sudo ssh -i ~/.ssh/id_rsa ...
하거나 인증 프록시를 사용할 수 있으며 인증 프록시에 대한 소켓 경로를 루트에 전달해야 합니다.
sudo --preserve-env=SSH_AUTH_SOCK ssh ...
또는
sudo SSH_AUTH_SOCK="$SSH_AUTH_SOCK" ssh ...
ssh
또한 루트로 실행 해야 합니까 ? 1024 이하의 TCP 포트에서 터널을 생성하거나 로컬 포트 전달을 바인딩할 수 있습니까? 마치 root
원격 호스트에 있는 것처럼 로그인 할 수 있다면 이것 ssh root@host
만으로도 충분합니다.
1 실제 uid를 0으로 유지하면서 실제 uid를 원래 uid로 복원할 수 있습니다.
sudo perl -e '$<=getpwnam($ENV{SUDO_USER}); exec@ARGV' ssh ...
답변2
sudo
"다른 사용자로 명령 실행"( )이 허용되지만 누락 man sudo
된 경우 "기본 대상 사용자(보통 루트)"가 사용됩니다. 그렇기 때문에 root
원격측의 계정을 찾는 것입니다.