서버에 로그인하는 스크립트를 자동화해야 합니다. RSA 키를 만들어 서버의 Authorized_keys 파일에 업로드했습니다.
desktop$ ssh-keygen -f ~/.ssh/id_rsa_marge -P '' -t rsa
desktop$ chmod 600 ~/.ssh/id_*
desktop$ scp ~/.ssh/id_rsa_marge.pub [email protected]:~/
password:
desktop$ ssh [email protected]
password:
marge$ cat ~/id_rsa_marge.pub >> ~/.ssh/authorized_keys
marge$ whoami
me
marge$ ls -la | grep ssh
drw------- 2 me me 4096 May 29 16:02 .ssh
marge$ ls -la .ssh
total 16
drwx------ 2 me me 4096 May 29 16:02 .
drwx--x--x. 9 me me 4096 Aug 11 05:32 ..
-rw------- 1 me me 398 Aug 11 04:14 authorized_keys
-rw-r--r-- 1 me me 414 May 29 16:02 known_hosts
marge$ cat .ssh/authorized_keys
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCzUvV0SMF+H7kwmEkJzXY1RqionS6DTtJiON3+9L6neKMaFb/FXc3UtK7oN/lsxNcHwv9s9GG4xp2UiUNk8NeT+/aFCjl7sMpDsW1+bn7sjhRFFw095qxvK52somSUKXlm9DP1pr0wj9r9Kxdph3HynxRsMkdPnWK2LVGhHzr3nh39mJ/3Fwaejl+sYnO8wgPfZbqZTA1xubhIQilv0XI8YAWUOM+Mn2QmyI12geTVKdD393wL0cDrkit/MXjMY6pimSFafrFJkaWV1BI4YOnkPRPo8oyoM4ywXhcCeb14JkOmKdSacUwSDsnCy/IDP51rcwItZrXxBiOHFZJW1Nlp dotancohen@desktop
marge$ exit
desktop$ cat .ssh/id_rsa_marge.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCzUvV0SMF+H7kwmEkJzXY1RqionS6DTtJiON3+9L6neKMaFb/FXc3UtK7oN/lsxNcHwv9s9GG4xp2UiUNk8NeT+/aFCjl7sMpDsW1+bn7sjhRFFw095qxvK52somSUKXlm9DP1pr0wj9r9Kxdph3HynxRsMkdPnWK2LVGhHzr3nh39mJ/3Fwaejl+sYnO8wgPfZbqZTA1xubhIQilv0XI8YAWUOM+Mn2QmyI12geTVKdD393wL0cDrkit/MXjMY6pimSFafrFJkaWV1BI4YOnkPRPo8oyoM4ywXhcCeb14JkOmKdSacUwSDsnCy/IDP51rcwItZrXxBiOHFZJW1Nlp dotancohen@desktop
desktop$ ls -la | grep .ssh
-rw------- 1 dotancohen dotancohen 689 Aug 12 11:03 .lesshst
drwx------ 3 dotancohen dotancohen 4096 Aug 12 11:05 .ssh
desktop$ ls -la .ssh | grep canary
-rw------- 1 dotancohen dotancohen 1675 Aug 11 12:13 id_rsa_marge
-rw------- 1 dotancohen dotancohen 398 Aug 11 12:13 id_rsa_marge.pub
desktop$ grep -A 5 marge .ssh/config
Host marge
User me
HostName 2.4.6.8
IdentityFile ~/.ssh/id_rsa_marge.pub
IdentitiesOnly yes
그런데 서버에 로그인하려고 하면 비밀번호를 묻는 메시지가 나타납니다.
desktop$ ssh -v marge
OpenSSH_5.3p1, OpenSSL 1.0.0-fips 29 Mar 2010
debug1: Reading configuration data /home/desktop/.ssh/config
debug1: Applying options for marge
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: Applying options for *
debug1: Connecting to 2.4.6.8 [2.4.6.8] port 22.
debug1: Connection established.
debug1: identity file /home/desktop/.ssh/id_rsa_marge.pub type 1
debug1: identity file /home/desktop/.ssh/id_rsa_marge.pub-cert type -1
debug1: Remote protocol version 2.0, remote software version OpenSSH_5.9p1 Debian-5ubuntu1.3
debug1: match: OpenSSH_5.9p1 Debian-5ubuntu1.3 pat OpenSSH*
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_5.3
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: server->client aes128-ctr hmac-md5 none
debug1: kex: client->server aes128-ctr hmac-md5 none
debug1: SSH2_MSG_KEX_DH_GEX_REQUEST(1024<1024<8192) sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_GROUP
debug1: SSH2_MSG_KEX_DH_GEX_INIT sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_REPLY
debug1: Host '2.4.6.8' is known and matches the RSA host key.
debug1: Found key in /home/desktop/.ssh/known_hosts:2
debug1: ssh_rsa_verify: signature correct
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS received
debug1: SSH2_MSG_SERVICE_REQUEST sent
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey
debug1: Next authentication method: publickey
debug1: Offering public key: /home/desktop/.ssh/id_rsa_marge.pub
debug1: Server accepts key: pkalg ssh-rsa blen 277
debug1: PEM_read_PrivateKey failed
debug1: read PEM private key done: type <unknown>
Enter passphrase for key '/home/desktop/.ssh/id_rsa_marge.pub':
debug1: No more authentication methods to try.
Permission denied (publickey).
보시다시피 키에는 비밀번호가 없습니다. 게다가 다른 데스크톱에서 비밀번호를 입력하지 않고도 이 키를 사용할 수 있습니다!비밀번호가 없는데 왜 이 서버에서 비밀번호를 요구하나요?
답변1
Enter passphrase for key '/home/desktop/.ssh/id_rsa_marge.pub':
공개 키 파일( .pub
)의 비밀번호는 무엇입니까?
IdentityFile ~/.ssh/id_rsa_marge.pub
ID 파일은 로그인할 수 있음을 서버에 증명할 수 있는 클라이언트의 파일입니다. 비밀 값이 포함된 파일입니다. 이는 공개 키 파일이 아닌 개인 키 파일입니다.
이 줄을 다음으로 변경하세요.
IdentityFile ~/.ssh/id_rsa_marge
~/.ssh/authorized_keys
서버에 추가하는 것(바람직하게는 에 전달 ssh-copy-id
)이 공개 키 파일( )인지 확인하십시오 .pub
.
답변2
파일의 기본 키 위치를 사용하고 있지 않습니다. SSH 클라이언트는 개인 키를 어디에서 로드할지 모르므로( .ssh/id_dsa
및 만 찾습니다 .ssh/id_rsa
) 생성된 키를 전혀 사용하지 않습니다. 동일한 호스트에 대해 유효하지만 비밀번호가 있는 다른 키가 있을 수 있습니까?
달려보세요.ssh -i .ssh/id_rsa_marge -v [email protected]