Linux에서 특정 사용자에 대한 SSH 키를 추가하는 방법은 무엇입니까?

Linux에서 특정 사용자에 대한 SSH 키를 추가하는 방법은 무엇입니까?

Ubuntu 18.04가 있고 관리자 계정과 다른 사용자용 계정이 있습니다. 관리자 계정에 대한 관리자 액세스가 필요한 사용자를 위해 공개 SSH 키를 추가했지만 단일 사용자에 대해 동일한 작업을 수행하려고 하면 해당 사용자의 디렉터리에 파일이 표시되지 않습니다 authorized_keys. .ssh여기서 어떻게 진행해야 하나요?

내가 시도한 명령은 다음과 같습니다.

cd /home
cd /admin
ls -a
nano .ssh/authorized_keys

그런 다음 관리자 계정에 공개 키를 추가했습니다. 이는 관리자에게는 작동하지만 다른 사용자에게는 파일이 표시되지 않습니다 authorized_keys.

답변1

SSH 키 생성:

ssh-keygen -t rsa -b 4096 -C "comment"

원격 서버에 복사합니다.

ssh-copy-id user@ip

~/.ssh/id_rsa.pub또는 다음 항목에 수동으로 추가할 수 있습니다 ~/.ssh/authorized_keys.

ssh user@ip 'mkdir ~/.ssh'
ssh user@ip 'cat >> ~/.ssh/authorized_keys' < ~/.ssh/id_rsa.pub

답변2

이 파일은 를 실행할 때 생성됩니다 ssh-copy-id <user>@<server>. 예를 들면 다음과 같습니다.

sylvester@host3:~> ssh-copy-id arnold@host4
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/home/sylvester/.ssh/id_rsa.pub"
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
Password: 

Number of key(s) added: 1

Now try logging into the machine, with:   "ssh 'arnold@host4'"
and check to make sure that only the key(s) you wanted were added.

이 사용자에 대해 아무것도 추가한 사람이 없기 때문에 파일이 아직 존재하지 않습니다.

답변3

인증 키 파일을 생성하거나 특정 프로그램에 해당 파일이 존재함을 알리기 위해 특정 도구가 필요하지 않습니다. sshd사용자가 로그인을 시도할 때마다 검색됩니다.

매우 간단합니다. 존재하지 않는 경우 다른 사용자를 위해 기존 파일을 편집하는 것처럼 만들 수 있습니다.

너 뭐야하다수행해야 할 작업은 권한이 충분히 잠겨 있는지 확인하는 것입니다. 그렇지 않으면 sshd파일 신뢰가 거부됩니다. 따라서 사용자를 위해 완전히 비어 있는 홈 디렉터리를 만드는 단계 joebloggs는 다음과 같습니다.

# Create the .ssh directory, and set its permissions
mkdir ~joebloggs/.ssh
chown joebloggs ~joebloggs/.ssh
chmod 0700 ~joebloggs/.ssh

# Create the authorized keys file, and set its permissions
touch ~joebloggs/.ssh/authorized_keys
chown joebloggs ~joebloggs/.ssh/authorized_keys
chmod 0600 ~joebloggs/.ssh/authorized_keys

이렇게 하면 액세스하고, 읽고, 쓸 .ssh/authorized_keys수만 있는 완전히 빈 파일이 생성됩니다 .joebloggs

이것은최저 한도에서권한이 필요하며 최소 권한의 원칙을 따릅니다. 원하는 경우 chgrp -R some-group ~joebloggs/.ssh; chmod 750 ~joebloggs/.ssh; chmod 640 ~joebloggs/.ssh/authorized_keys특정 그룹( ) 또는 시스템의 모든 사용자( )에게 읽기 전용 액세스를 허용할 수 있습니다 chmod 755 ~joebloggs/.ssh; chmod 644 ~joebloggs/.ssh/authorized_keys. 중요한 것은 그들이 그럴 수 없다는 것이다.쓰다그렇지 않으면 SSH 데몬은 해당 내용을 신뢰하지 않습니다.

답변4

  1. ssh-keygen(Enter를 누르세요/비밀번호를 입력하지 마세요)

  2. ssh-keyscan hpc.university.edu > known_hosts(엔터키 누르기)

  3. ssh-copy-id [email protected](누름 Enter) 이 경우 대학 VPN을 통과하기 위해 비밀번호가 필요할 수 있으므로 비밀번호를 입력할 수 있습니다.)

관련 정보