다른 사용자를위한 ssh 키를 어떻게 작성합니까?


89

다른 사용자를 위해 ssh 키를 만들려고합니다. 루트로 로그인했습니다. ssh-keygen에 의해 생성 된 파일을 편집하고 루트를 원하는 사용자로 변경할 수 있습니까?


5
사용자의 키를 생성하는 경우 개인 키를 얻는 안전한 방법이 있어야하며 사용자에게 암호를 전달해야합니다. 사용자가 키를 생성 한 다음 공개 키를 이메일로 보내는 것이 훨씬 좋습니다.
— user9517

그러나 비밀번호 로그인을 허용하지 않는 것이 어렵지 않습니까? 키 전용이고 새 사용자를 설정하면 로그인하여 키를 설정할 수 없습니다.
— LVLAaron

답변:


79

당신은에 그렇게 할 수 ssh-keygen있지만, 개인 키는 당신이 사용자의 암호와 안전 안전 - 유지하는 것은 매우 신중해야하므로 사용자에게 개인으로 의미가 있음을 기억하십시오. 또는 처음 로그인 할 때 사용자를 변경할 필요가 없으므로 더 안전합니다.

ssh-keygen -f anything현재 디렉토리에 두 개의 파일을 작성합니다. anything.pub공개 키이며 ~/.ssh/authorized_keys대상 서버 의 사용자에게 추가 할 수 있습니다.

방금 불리는 다른 파일 anything은 개인 키이므로 사용자를 위해 안전하게 저장해야합니다. 기본 위치는 ~username/.ssh/id_rsa여기서 id_rsarsa 키의 기본값 인으로 지정 됩니다. .ssh사용자 이외의 다른 사람 이 디렉토리를 읽거나 쓸 수 없으며, 사용자의 홈 디렉토리는 사용자 이외의 사람이 쓸 수 없습니다. 마찬가지로 개인 키에 대한 권한도 엄격해야합니다. 사용자에 대한 읽기 / 쓰기 및 .ssh 디렉토리 및 개인 키 파일은 사용자가 소유해야합니다.

기술적으로 키를 어디에나 저장할 수 있습니다. 연결 ssh -i path/to/privatekey하면 해당 위치를 지정할 수 있습니다. 다시 한 번, 적절한 소유권과 권한이 중요하며 권한이 없으면 ssh가 작동하지 않습니다.


4
개인 키임을 나타내는 +1
— mailq

51
사용자가 실제 사람이라고 가정합니다. 로그인이 유틸리티 작업 (예 : 원격 서버에서 기본 스크립트 실행)을 수행하는 데 사용되는 비 대화식 사용자 인 경우 예, 해당 사용자의 키를 수동으로 생성 할 수 있습니다. 물론 이것은 자체 보안에 영향을 미치지 만 또 다른 이야기입니다.
— Rilindo

2
ssh -i비 권한 프로세스의 개인 키에 @Rilindo 를 사용하면 몇 가지 자동 rsync 백업 프로세스를 처리하는 방법이 있습니다. :)
— Shadur

9
나는 "그렇게하지 말아야한다"라는 대답을 좋아하지 않지만 질문에 대답하지는 않습니다. 이것이 원래의 질문의 맥락에서 정확하고 도움이 될 수 있지만 다른 사람들은 다른 상황에서 동일한 질문을 가질 수 있습니다. "다른 사용자를 위해 ssh 키를 생성해서는 안됩니다": 간단한 경우에 해당됩니다. 그러나 예를 들어, 동일한 육체의 여러 정체성을 고려하십시오. 여러 시스템에 여러 개의 계정이있을 수 있지만 모든 계정에서 키를 생성하거나 개인 키를 적절하게 보호 할 수있는 것은 아닙니다.
— Gustave

users또는user's
— 사용자

135

SSH 키에는 사용자 정보 가 없습니다 .

공개 키의 마지막 필드는 주석입니다 (다음 명령을 실행하여 변경할 수 있음 ssh-keygen -C newcomment).

다른 사용자를 위해 키를 만들기 위해 특별한 조치를 취할 필요가 없습니다. 올바른 위치에 키를 넣고 권한을 설정하십시오.


5
정답입니다.
— sebnukem

1
그냥 테스트하고 확인했습니다. 단지 주석 일뿐 만 아니라 제거 할 수 있으며 키는 여전히 작동합니다. 나는 항상 그것이 중요하다고 생각했다! 정답을 주셔서 감사합니다. 위의 의견과 마찬가지로 다른 사용자를 위해 키를 생성 해야하는 이유가 있지만 이유를 말하지 않으므로 인수가 없습니다.
— FreeSoftwareServers

18

su 를 사용하여 사용자가 되고 해당 사용자로 키를 실행하십시오.

[root@kvm0001 ~]# su - joeuser
[joeuser@kvm0001 ~]$ ssh-keygen -t dsa (or rsa1 or rsa, depending on your security requirements)
Generating public/private dsa key pair.
Enter file in which to save the key (/home/joeuser/.ssh/id_dsa):

왜 DSA를 지정해야합니까?
— Ram

으악, 습관의 힘. 업데이트하겠습니다.
— Rilindo

4
rsa (또는 타원 곡선 변형 중 하나)를 사용해야합니다. dsa는 안전하지 않은 키 크기로 제한됩니다. rsa1은 더 이상 사용하지 않아야하는 ssh1의 레거시 형식입니다.
— Peter Green

My joeuser는 서비스 사용자이므로 로그인 할 수 없습니다. 프로세스를 실행하는 서비스 사용자가 ssh 키를 가지도록하려면 어떻게해야합니까?
— 조나단

@JonathanLeaders 해당 사용자가 될 때 사용자의 쉘을 지정합니다. ```[root @ ip-10-254-41-211 ~] # grep ftp / etc / passwd ftp : x : 14 : 50 : FTP 사용자 : / var / ftp : / sbin / nologin [루트 @ ip-10-254-41-211 ~] # su-ftp su : 경고 : 디렉토리를 / var / ftp로 변경할 수 없습니다 : 해당 파일이나 디렉토리가 없습니다.이 계정은 현재 사용할 수 없습니다. [root @ ip-10-254-41-211 ~] # su -s / bin / bash ftp bash-4.2 $ whoami ftp bash-4.2 $```
— Rilindo

6

여기 에서 볼 수 있듯이 chmod를 사용하여 SSH 키를 추가하려는 사용자 폴더의 읽기 권한을 변경할 수 있습니다.

vim /home/username/.ssh/authorized_keys

그런 다음 해당 파일의 맨 아래에있는 새 줄에 키를 붙여 넣기 만하면됩니다.


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