SSH 키 인증을 사용하여 다른 사용자 이름으로 원격 시스템에 로그인 할 수 있습니까?


17

"remotesystem"이라는 원격 시스템과 해당 시스템에 "foouser"라는 사용자 계정이 있다고 가정합니다.

로컬 시스템에서 로컬 사용자 "foouser"로 SSH 키 쌍을 생성하고 공개 키를 "remotesystem"의 "/home/foouser/.ssh/authorized_keys"파일에 넣을 수 있음을 알고 있습니다. 로컬 시스템에서 "원격 시스템"으로 "foouser"로 SSH를 연결할 때 SSH는 키 쌍을 사용하여 나를 인증합니다.

그러나 내 로컬 사용자 이름이 원격 시스템의 사용자 이름과 다른 경우 어떻게합니까? 즉, 로컬 사용자 "baruser"로 "remotesystem"으로 SSH를 사용하려면 어떻게해야합니까? "baruser"에 대한 키 페어를 생성하고 "/home/foouser/.ssh/authorized_keys"에 공개 키를 추가해야합니다. 그런 다음 로컬로 "baruser"로 로그인 한 상태에서 "ssh foouser @ remotesystem"을 사용할 수 있어야하며 SSH는 키 쌍을 사용하여 인증합니다.

이 시나리오에서 키 인증이 성공하지 못하도록 노력하고 있기 때문에 묻습니다. 사용자 이름이 일치하지 않거나 원격 시스템의 SSH 서버와 관련된 구성 문제인지 확실하지 않습니다.


로깅 서버 쪽을 확인한 결과 원격 사용자의 홈 디렉토리에 대한 권한에 문제가있는 것으로 나타났습니다. 문제 해결됨! 답변을 주신 모든 분들께 감사드립니다.
Matt Hurne

답변:


11

그렇습니다. 당신이 묘사 한 것처럼 이것을 할 수 있습니다.

baruser @ here ~ $ ssh-add -l
4096 10 : b3 : fd : 29 : 08 : 86 : 24 : a6 : da : 0a : dd : c6 ​​: 1e : b0 : 66 : 6a id_rsa (RSA)
baruser @ here ~ $ ssh foouser @ remotesystem
motd 메시지 등
foouser @ remotesystem ~ $

답변 해주셔서 감사합니다. 나는 내가 미쳤다는 것을 알았다 ... :-) 원격 시스템의 SSH 서버 설정에 문제가있어서 키 인증이 완전히 작동하지 않도록해야한다.
Matt Hurne

4
"ssh -V foouser @ remotesystem"을 수행하면 무엇이 잘못되었는지에 대한 정보를 얻을 수 있습니다. 종종 ~ / .ssh의 권한 오류입니다.
Paul Tomblin

4
-V (버전 번호 표시)가 아닌 -vvv (최대 상세 표시)
Leven

10

조금은 제쳐두고 있지만 .....

원격 서버에 항상 동일한 사용자 이름을 사용하는 경우 ssh 구성에 호스트를 추가하는 것이 유용 할 수도 있습니다.

Host remotesystem
    User baruser

그렇게하면 로그인 할 때 사용자 이름을 지정할 필요가 없으며 나중에 키에 문제가있을 때이를 배제 할 수 있습니다.


5

로컬 사용자 이름은 중요하지 않습니다 (개인 키는 로컬 사용자의 홈 디렉토리 내에 있어야 함). 키를 원격 사용자 authorized_keys섹션에 복사 하면 작동합니다.


3

ssh 관련 문제가 있으면 가장 먼저 클라이언트의 세부 정보를 설정하십시오.

ssh user @ machine -vvv

이것이 무엇이 잘못되었는지에 대한 통찰력을 제공하지 못하면 서버의 로그 레벨을 변경하고 디먼을 다시 시작해야합니다.

LogLevel DEBUG3

디버그 출력은 /var/log/auth.log (또는 ssh가 로그인하도록 구성된 위치)에서 찾아야합니다. 문제를 발견 한 후에는 문제를 찾은 방법으로 다시 설정하십시오.


2

두 머신의 .ssh 디렉토리에 대한 권한은 상당히 정확합니다. 일반적으로 이는 .ssh 디렉토리에서 700을, 홈 디렉토리에서 최대 755를 의미합니다. .ssh 디렉토리의 모든 파일에 600 개 추가.

원격 시스템의 사용자가 root 인 경우 root가 ssh가 될 수 있는지 확인하십시오. (sshd_config의 AllowRootLogin) 및 해당 공개 키 (PubkeyAuthentication) 및 필요한 경우 RSA (RSAAuthentication)가 활성화됩니다.


RSAAuthentication이 완전히 별도의 방법이 아닙니까?
user1686 2016 년

RSA는 SSH에서 지원하는 공개 키 알고리즘 중 하나입니다 (DSA와 함께). SSH1에서 유일한 방법이었습니다.
Alexandre Carmel-Veilleux

2

SE Linux가 사용 가능한 경우 다음을 수행해야합니다.

authorized_keyssshd가 액세스 할 수 있도록 SELinux 레이블을 추가하십시오 .

semanage fcontext -a -t sshd_key_t ~foo/.ssh/authorized_keys
restorecon -Rv ~user/.ssh

0

올바르게 작업하는 것처럼 들리지만 Authorized_keys에 대한 권한이 올바른지 확인하십시오. 600으로 설정해야합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.