누군가가 컴퓨터에 액세스하기를 원할 때마다 나는 그들에게 ssh-copy-id를 요청합니다. 내 컴퓨터에 사용자 계정과 임의의 비밀번호를 만든 후에 이 작업을 수행합니다. 이는 일반적으로 이메일을 통해 발생합니다.
사람들에게 ssh-copy-id를 요청하고 조치를 취하는 사이(몇 시간에서 며칠까지 소요될 수 있음), PasswordAuthentication yes
비밀번호 로그인 " "이 가능하도록 컴퓨터를 열어 두어야 합니다.
이 작업 흐름을 개선할 수 있는 방법이 있습니까? 나는 sshd를 비밀번호 로그인에 노출시키고 싶지 않으며 종종 세션 사이에 설정을 잊어버리게 됩니다 PasswordAuthentication no
.
답변1
키를 직접 생성하도록 요청하세요. 이메일을 통해 비밀번호나 개인 키를 보내는 것은 결코 좋은 생각이 아닙니다. 전송은 안전해야 했지만 메일은 수년 동안 잠재적으로 신뢰할 수 없는 두 개 이상의 서버에 보관되었습니다(무료 메일 등).
이 사용 사례에서는 비밀번호 인증만 노출하는 것은 가치가 없습니다. 다시 가져오는 것을 잊어버리거나 서비스를 다시 시작하면 결국 비밀번호 인증이 활성화될 수 있습니다. 꼭 필요한 경우 해당 개별 사용자에 대해 활성화하세요.
Match user new-user PasswordAuthentication yes
새 사용자에 대한 공개 키와 올바른 권한을 설정하는 스크립트를 만듭니다. 해당 서버에 직접 몇 줄이 있거나
ssh-copy-id
with-f
스위치(비밀번호 인증을 활성화한 경우)를 사용하여 서버를 여는 창을 최소화할 수도 있습니다.인증에 사용되는 공개 키를 제어하고 사용자가 인증 키를 작성/수정하는 것을 방지하려면
AuthorizedKeysFile
액세스를 제어할 일부 공개 디렉토리에 이를 구성할 수 있습니다.AuthorizedKeysFile /etc/ssh/authorized_keys/%u
new-user
그러면 에서 사용자의 파일이 검색됩니다/etc/ssh/authorized_keys/new_user
. 이 디렉터리에 생성된 파일에는/etc/
SSH에 적합한 기본 권한이 있어야 합니다.
답변2
최소한 Linux VPS로 공개 키 인증을 설정할 때 Hetzner Online(독일 ISP)과 같은 방식으로 수행할 수 있습니다(구성 중에 계정 비밀번호 설정 대신 이 옵션을 제공합니다 root
).
사용자에게 공개 키를 제출하도록 요구앞으로귀하는 그들이 자신의 계정에 액세스하도록 허용합니다.사용자 계정의 비밀번호를 직접 설정하지 마십시오. 원하는 경우 모든 것을 PubkeyAuthentication
sshd에 보관하되 항상 닫아 두십시오. 사용자 계정을 생성한 후 또는 키를 받은 후 액세스를 허용하기 전에 사용자 제공 키를 사용자 자신의 ~/.ssh/authorized_keys에 삽입하세요. OpenSSH를 사용한다고 가정하면 로컬 호스트의 비밀번호 인증만 허용하도록 SSH 서버를 설정할 수도 있습니다(/etc/ssh/sshd_config의 스탠자 사용 ). 그러면 워크플로를 Match
로컬에서 사용할 수 있으며 권한과 소유권 등을 확실히 설정할 수 있습니다. . ssh-copy-id
내용이 정확합니다.
이러한 방식으로 사용자는 항상 개인 키에 대한 모든 권한을 보유하며 공유되지 않는 데이터는 전송되지 않습니다. 또한 개인 키를 생성하는 다른 사람을 수락하도록 교육하지도 않습니다.Amazon이 이 작업을 수행할 수 있을지도 모릅니다. 저는 개인적으로 의심스럽습니다. 확실히 키 쌍을 즉시 교체하고 싶습니다. 하지만 프로세스를 올바르게 수행하기 위해 아마존만큼 많은 돈을 투자할 수 있는 확률은 얼마나 됩니까?
이상적으로는 공개 키가 암호화된 채널을 통해 전송되도록 요구해야 하지만 이는 개인 정보 보호를 위한 것이 아닙니다.확실성. 사용자는 자신이 통신하고 있다고 생각하는 엔터티와 통신하고 있는지 확인하기를 원하며, 어느 누구도 중개자 역할을 하고 통신을 수정하고 공개 키를 자신의 키로 대체하지 않는다는 것을 적어도 합리적으로 확신하기를 원합니다.하지만 단순하고 안전하지 않은 이메일을 통해 공개 키를 보내는 것조차 그렇게 나쁘지는 않습니다.결국 공개 키는 공개되어야 합니다.
새 계정을 거의 설정하지 않고 이미 관계가 있는 사람들과 함께 있는 경우, 사용자에게 전화로 전화를 걸어 SSH 키 지문을 읽어달라고 요청하고 받은 정보를 기반으로 확인하도록 요청할 수도 있습니다. 또한 호스트 키의 지문도 제공하세요. 이렇게 하면 처음이라도 올바른 호스트에 연결되어 있는지 확인할 수 있습니다. (Hetzner는 "귀하의 VPS가 준비되었습니다" 이메일에 호스트 키 지문을 포함시켰습니다.)
답변3
Amazon 방식으로 수행하세요. 공개/개인 키 쌍을 생성하고 개인 키를 보내세요. 인증( )을 위해 해당 개인 키를 제출해야 하므로 ssh -i /path/to/key.pem user@host
SSH 비밀번호 인증을 활성화할 필요가 없습니다.
편집하다: 댓글 작성자들 덕분에 드디어 그 댓글들이 어디서 왔는지 알 수 있게 되었습니다. 도착하다원래 공유됨보안 채널(예: HTTPS)을 통해 전송되어야 하는 사용자의 개인 키입니다.