NAS에서 공개 키를 사용하는 웹 서버로 SSH를 보내려고합니다.
NAS 사용자는 ‘root’이고 웹 서버 사용자는 ‘backup’입니다.
모든 권한이 올바르게 설정되어 있고 SSH 연결을 디버깅 할 때 얻을 수있는 권한은 다음과 같습니다.
(디버그의 마지막 조금)
debug1: SSH2_MSG_SERVICE_REQUEST sent
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey,gssapi-keyex,gssapi-with-mic,password
debug1: Next authentication method: publickey
debug1: Offering DSA public key: /root/.ssh/id_dsa.pub
debug1: Server accepts key: pkalg ssh-dss blen 433
debug1: key_parse_private_pem: PEM_read_PrivateKey failed
debug1: read PEM private key done: type <unknown>
Enter passphrase for key '/root/.ssh/id_dsa.pub':
명령을 사용하고 있습니다 :
ssh -v -i /root/.ssh/id_dsa.pub backup@webserver.com
암호문을 요구한다는 사실은 확실하게 좋은 신호이지만 암호 나 암호를 요구하지 않습니다 (암호문에서 ‘return’을 누르면 나중에옵니다)
답변
개인 키가 암호화되어 있기 때문에 그게 …
ssh 에이전트에 키를 추가하려면 다음을 사용하십시오. ssh-add
또는 다음 명령을 사용하여 키에서 암호문 (및 암호문)을 제거하십시오.
ssh-keygen -p -f /root/.ssh/id_dsa -N ''
편집하다
오, 방금 공개 키를 사용하여 인증하려고한다는 것을 깨달았습니다. 개인 키를 사용하고 싶습니다.
ssh -v -i /root/.ssh/id_dsa backup@webserver.com
그리고 절대적으로 확실하게하기 위해 파일의 내용 id_dsa.pub
로 전환 ~backup/.ssh/authorized_keys
웹 서버에. 다음 명령을 사용하여 자동으로 수행 할 수 있습니다.
ssh-copy-id -i /root/.ssh/id_rsa.pub backup@webserver.com
답변
개인 키가 OpenSSH 형식이 아니었을 때 이런 일이 일어났습니다.
나는 원래 PuttyGen을 사용하여 창문에 내 열쇠를 생성했고,이 똑같은 것으로 튀어 오르고 있었다.
PuttyGen에서 키를로드하고 OpenSSH 형식으로 변환하려면 “Conversions”를 클릭하여 문제를 해결할 수있었습니다.
답변
몇 가지가 있습니다.
주로 KEY가 암호를 요구하면 키가 생성됩니다. 둘째, 시스템에서 암호를 묻는 메시지가 표시되면 키가 인증되지 않습니다. 의미, 당신은 SSH 키를 재생성 (또는 @ rbtux에 의해 제안 된대로 변경)하고 authorized_keys 파일을 수정해야합니다.
ssh-keygen -t {dsa | rsa} -b {1024 | 2048 | 4096} -C “선택적 주석”-f id_examplekey
중괄호 안의 항목은 옵션, 유형 및 비트 크기입니다 ( “보안”측면에서 dsa & gt; rsa, 4096 & gt; 1024).
그런 다음 공개 키 (.pub)를 authorized_keys
과 authorized_keys2
파일 (그것은 .pub가 로컬 사용을위한 것이라고 오인하는 것이 일반적이지만 오히려 비교 대상입니다) 그래서 서버의 .ssh
폴더.
$ cat id_examplekey.pub & gt; & gt; authorized_keys {, 2}
마지막으로, 핵심 사용 권한이 있는지 확인해야합니다. chmod 600 id_example
그리고 모든 것을 타이핑하는 것을 줄이기 위해 config 파일을 설정할 수 있습니다 : ~/.ssh/config
당신의 로컬 박스 (골격이라면이 톤을 커스터마이즈 할 수 있습니다) :
Host example.com
User WHATEVERNAME
IdentityFile ~/.ssh/id_examplekey
답변
키 자체가 암호화 되었기 때문에 나에겐 다음 단계를 따랐다.
- ssh-agent를 시작하십시오 :
$ ssh-agent bash
- 키 관리자에 표준 신원 키를 추가하십시오.
$ ssh-add
- 다른 키를 추가하려면 다음을 수행하십시오.
$ ssh-add /location/of/key
현재로드 된 키 목록은 언제든지 검사 할 수 있습니다.
$ ssh-add -l
자세한 내용은 다음에서 얻을 수 있습니다. 링크
답변
시험 https://wiki.gentoo.org/wiki/Keychain
랩의 종류입니다. ssh-agent
과 ssh-add
장점 : 재부팅하지 않는 한 암호를 반복해서 입력 할 필요가 없습니다. 에서 사용할 수 있습니다. crontab
.
도움이 될지도 모른다.
답변
OpenSSH v7에서 기본적으로 비활성화되어있는 DSA pubkey를 사용하고 있기 때문일 수 있습니다.
키 쌍을 변경할 수없는 경우 webserver.com의 SSH 데몬에 해당 키 유형을 승인하도록 알리는 것이 좋습니다. /etc/ssh/sshd_config
또는 다음과 같은 라인을 추가하는 동급
PubkeyAcceptedKeyTypes=+ssh-dss
그런 다음 서비스를 다시 시작하십시오.
/etc/init.d/ssh restart # or equivalent
답변
Mac OSX에서는 다음 명령을 사용하여 개인 키를 키 체인에 추가 할 수 있습니다.
ssh-add -K /path/to/private_key
개인 키가 ~ / .ssh에 저장되고 이름이 id_rsa 인 경우 :
ssh-add -K ~/.ssh/id_rsa
키 체인에 저장된 암호를 묻는 메시지가 나타납니다.