SSH 구성 파일에 대한 소유자 또는 권한이 잘못되었습니다.

SSH 구성 파일에 대한 소유자 또는 권한이 잘못되었습니다.

에서 더 이상 웹서버에 연결할 수 없다는 것을 깨달았습니다 x.x.202.50. 어제 /share/homes/admin/.ssh/config다음 설정을 추가하여 다음 SSH 구성 파일을 변경했습니다 .

# ssh (secure shell) configuration file
Host webserver
    HostName x.x.212.50
    User user1
    IdentityFile ~/.ssh/id_rsa `

내가 이렇게 한 이유는 동기화 목적으로 키 로그인을 활성화하기 위해서입니다 Unison.

이제 서버에 연결하려고 하면 다음 오류가 발생합니다.

/share/homes/admin/.ssh/config에 대한 잘못된 소유자 또는 권한

PuttyWindows 10 및 Linux 서버에서 다른 Linux 서버로 연결합니다 .

프로젝트에 참여하고 있어서 서버에 연결해야 하는데 어떻게 해야할지 모르겠습니다. 이 작업을 수행하는 방법을 아는 사람이 있나요?

답변1

.ssh 디렉토리의 권한을 변경해야 합니다. 다음을 실행하세요. (600에서는 자체적으로 문제를 해결할 수 없다는 것을 알았습니다.)

chmod 700 ~/.ssh
chmod 600 ~/.ssh/*

답변2

보안에 영향을 미칠 수 있는 파일(개인 키, 구성 파일, 승인된 키)에 대한 일반적인 규칙은 소유자 이외의 다른 사람이 쓸 수 없어야 한다는 것입니다(개인 키는 액세스할 수 없어야 합니다!).

오류는 다음에서 발생합니다.openssh 코드아래에:

if (((sb.st_uid != 0 && sb.st_uid != getuid()) ||
    (sb.st_mode & 022) != 0))
      fatal("Bad owner or permissions on %s", filename);

따라서 영어로 번역하면 구성 파일은 루트 또는 실행 중인 사용자가 소유해야 하며 ssh어떤 그룹이나 다른 사용자도 쓸 수 없다는 의미입니다.

의견에서 이미 지적했듯이 이 권한을 누군가에게 부여했을 수 있으므로 이러한 권한을 제거하면 문제가 해결됩니다.

chmod go-w /share/homes/admin/.ssh/config

답변3

루트 계정과 동일한 '.ssh' 디렉터리를 공유하는 단일 사용자 Linux 시스템이 있습니다. /root/.ssh는 사용자의 '/home/username/.ssh' 폴더를 가리키는 심볼릭 링크입니다.

최근에 ~/.ssh/config 파일을 추가했는데 이로 인해 루트 계정에서 SSH 및 SSHFS를 호출할 때 SSH에서 오류 메시지가 표시되었습니다. 나를 위한 해결책은 다음을 수행하는 것이었습니다.

chown root:$USER ~/.ssh/config
chmod 644 ~/.ssh/config

하지만 파일을 편집해야 할 때 파일의 권한과 소유권을 엉망으로 만든 다음 다시 뒤집어야 하기 때문에 이것은 약간의 문제입니다. 하지만 계정 간에 폴더를 공유하기로 선택했기 때문에 그것은 내 자신의 문제입니다. 루트 사용자 계정을 사용하여 'sshfs' 또는 'ssh' 명령을 호출할 때만 권한을 전환하기 위해 몇 가지 쉘 스크립트를 만들었습니다.

답변4

다른 답변은 잘못된 권한이 있는 경우에만 문제를 해결합니다. 그러나 제 경우에는 잘못된 파일 소유자가 문제였습니다. 실행하여 ls -l ~/.ssh권한 및 소유자에 대한 정보를 볼 수 있습니다. 파일 소유자는 세 번째 열에서 볼 수 있습니다. 잘못된 경우 다음을 실행합니다.

chown <newOwner> <fileName>

관련 정보