我之前曾使用过 ssh,并且可以通过安装了全新 11.10 的 asus k53by 笔记本电脑的密码访问开发服务器,工作正常。
我想设置密钥访问以增加安全性并简化脚本编写,我执行以下操作:
paul@paul-K53BY:~/.ssh$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/paul/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/paul/.ssh/id_rsa.
Your public key has been saved in /home/paul/.ssh/id_rsa.pub.
The key fingerprint is:
7e:91:b2:2b:a9:bc:f8:11:d1:aa:ea:41:c5:1a:39:ff paul@paul-K53BY
paul@paul-K53BY:~/.ssh$ ssh-copy-id -i id_rsa.pub 10.1.1.28
[email protected]'s password:
现在尝试使用“ssh '10.1.1.28'”登录机器,并检查:
~/.ssh/authorized_keys
以确保我们没有添加您意想不到的额外键。
paul@paul-K53BY:~/.ssh$ ssh 10.1.1.28
[email protected]'s password:
一切似乎都正常,但我仍然需要使用密码。我还想为服务器提供一个方便的句柄(没有 DNS 的麻烦),因此我设置了 ~/.ssh/config,如下所示:
Host dev HostName 10.1.1.28 PasswordAuthentication no PubkeyAuthentication yes
ssh dev 失败:
paul@paul-K53BY:~/.ssh$ ssh dev Permission denied (publickey,password).
重新打开密码显示 ssh dev 仍然可以使用密码正常工作。
paul@paul-K53BY:~/.ssh$ ssh -vvv dev OpenSSH_5.8p1 Debian-7ubuntu1, OpenSSL 1.0.0e 6 Sep 2011 debug1: Reading configuration data /home/paul/.ssh/config debug1: Applying options for dev debug1: Reading configuration data /etc/ssh/ssh_config debug1: Applying options for * debug2: ssh_connect: needpriv 0 debug1: Connecting to 10.1.1.28 [10.1.1.28] port 22. debug1: Connection established. debug3: Incorrect RSA1 identifier debug3: Could not load "/home/paul/.ssh/id_rsa" as a RSA1 public key debug2: key_type_from_name: unknown key type '-----BEGIN' debug3: key_read: missing keytype debug3: key_read: missing whitespace debug3: key_read: missing whitespace debug3: key_read: missing whitespace debug3: key_read: missing whitespace debug3: key_read: missing whitespace debug3: key_read: missing whitespace debug3: key_read: missing whitespace debug3: key_read: missing whitespace debug3: key_read: missing whitespace debug3: key_read: missing whitespace debug3: key_read: missing whitespace debug3: key_read: missing whitespace debug3: key_read: missing whitespace debug3: key_read: missing whitespace debug3: key_read: missing whitespace debug3: key_read: missing whitespace debug3: key_read: missing whitespace debug3: key_read: missing whitespace debug3: key_read: missing whitespace debug3: key_read: missing whitespace debug3: key_read: missing whitespace debug3: key_read: missing whitespace debug3: key_read: missing whitespace debug3: key_read: missing whitespace debug3: key_read: missing whitespace debug2: key_type_from_name: unknown key type '-----END' debug3: key_read: missing keytype debug1: identity file /home/paul/.ssh/id_rsa type 1 debug1: Checking blacklist file /usr/share/ssh/blacklist.RSA-2048 debug1: Checking blacklist file /etc/ssh/blacklist.RSA-2048 debug1: identity file /home/paul/.ssh/id_rsa-cert type -1 debug1: identity file /home/paul/.ssh/id_dsa type -1 debug1: identity file /home/paul/.ssh/id_dsa-cert type -1 debug1: identity file /home/paul/.ssh/id_ecdsa type -1 debug1: identity file /home/paul/.ssh/id_ecdsa-cert type -1 debug1: Remote protocol version 2.0, remote software version OpenSSH_5.3p1 Debian-3ubuntu7 debug1: match: OpenSSH_5.3p1 Debian-3ubuntu7 pat OpenSSH* debug1: Enabling compatibility mode for protocol 2.0 debug1: Local version string SSH-2.0-OpenSSH_5.8p1 Debian-7ubuntu1 debug2: fd 3 setting O_NONBLOCK debug3: load_hostkeys: loading entries for host "10.1.1.28" from file "/home/paul/.ssh/known_hosts" debug3: load_hostkeys: found key type RSA in file /home/paul/.ssh/known_hosts:1 debug3: load_hostkeys: loaded 1 keys debug3: order_hostkeyalgs: prefer hostkeyalgs: [email protected],[email protected],ssh-rsa debug1: SSH2_MSG_KEXINIT sent debug1: SSH2_MSG_KEXINIT received debug2: kex_parse_kexinit: ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group-exchange-sha256,diffie-hellman-group-exchange-sha1,diffie-hellman-group14-sha1,diffie-hellman-group1-sha1 debug2: kex_parse_kexinit: [email protected],[email protected],ssh-rsa,[email protected],[email protected],[email protected],[email protected],[email protected],ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,ssh-dss debug2: kex_parse_kexinit: aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,aes192-cbc,aes256-cbc,arcfour,[email protected] debug2: kex_parse_kexinit: aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,aes192-cbc,aes256-cbc,arcfour,[email protected] debug2: kex_parse_kexinit: hmac-md5,hmac-sha1,[email protected],hmac-ripemd160,[email protected],hmac-sha1-96,hmac-md5-96 debug2: kex_parse_kexinit: hmac-md5,hmac-sha1,[email protected],hmac-ripemd160,[email protected],hmac-sha1-96,hmac-md5-96 debug2: kex_parse_kexinit: none,[email protected],zlib debug2: kex_parse_kexinit: none,[email protected],zlib debug2: kex_parse_kexinit: debug2: kex_parse_kexinit: debug2: kex_parse_kexinit: first_kex_follows 0 debug2: kex_parse_kexinit: reserved 0 debug2: kex_parse_kexinit: diffie-hellman-group-exchange-sha256,diffie-hellman-group-exchange-sha1,diffie-hellman-group14-sha1,diffie-hellman-group1-sha1 debug2: kex_parse_kexinit: ssh-rsa,ssh-dss debug2: kex_parse_kexinit: aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,aes192-cbc,aes256-cbc,arcfour,[email protected] debug2: kex_parse_kexinit: aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,aes192-cbc,aes256-cbc,arcfour,[email protected] debug2: kex_parse_kexinit: hmac-md5,hmac-sha1,[email protected],hmac-ripemd160,[email protected],hmac-sha1-96,hmac-md5-96 debug2: kex_parse_kexinit: hmac-md5,hmac-sha1,[email protected],hmac-ripemd160,[email protected],hmac-sha1-96,hmac-md5-96 debug2: kex_parse_kexinit: none,[email protected] debug2: kex_parse_kexinit: none,[email protected] debug2: kex_parse_kexinit: debug2: kex_parse_kexinit: debug2: kex_parse_kexinit: first_kex_follows 0 debug2: kex_parse_kexinit: reserved 0 debug2: mac_setup: found hmac-md5 debug1: kex: server->client aes128-ctr hmac-md5 none debug2: mac_setup: found hmac-md5 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 debug2: dh_gen_key: priv key bits set: 123/256 debug2: bits set: 500/1024 debug1: SSH2_MSG_KEX_DH_GEX_INIT sent debug1: expecting SSH2_MSG_KEX_DH_GEX_REPLY debug1: Server host key: RSA eb:f9:56:b8:ae:b0:de:27:92:06:8f:ac:c1:43:e4:64 debug3: load_hostkeys: loading entries for host "10.1.1.28" from file "/home/paul/.ssh/known_hosts" debug3: load_hostkeys: found key type RSA in file /home/paul/.ssh/known_hosts:1 debug3: load_hostkeys: loaded 1 keys debug1: Host '10.1.1.28' is known and matches the RSA host key. debug1: Found key in /home/paul/.ssh/known_hosts:1 debug2: bits set: 511/1024 debug1: ssh_rsa_verify: signature correct debug2: kex_derive_keys debug2: set_newkeys: mode 1 debug1: SSH2_MSG_NEWKEYS sent debug1: expecting SSH2_MSG_NEWKEYS debug2: set_newkeys: mode 0 debug1: SSH2_MSG_NEWKEYS received debug1: Roaming not allowed by server debug1: SSH2_MSG_SERVICE_REQUEST sent debug2: service_accept: ssh-userauth debug1: SSH2_MSG_SERVICE_ACCEPT received debug2: key: /home/paul/.ssh/id_rsa (0xb9434eb0) debug2: key: /home/paul/.ssh/id_dsa ((nil)) debug2: key: /home/paul/.ssh/id_ecdsa ((nil)) debug1: Authentications that can continue: publickey,password debug3: start over, passed a different list publickey,password debug3: preferred gssapi-keyex,gssapi-with-mic,publickey,keyboard-interactive debug3: authmethod_lookup publickey debug3: remaining preferred: keyboard-interactive debug3: authmethod_is_enabled publickey debug1: Next authentication method: publickey debug1: Offering RSA public key: /home/paul/.ssh/id_rsa debug3: send_pubkey_test debug2: we sent a publickey packet, wait for reply debug1: Authentications that can continue: publickey,password debug1: Trying private key: /home/paul/.ssh/id_dsa debug3: no such identity: /home/paul/.ssh/id_dsa debug1: Trying private key: /home/paul/.ssh/id_ecdsa debug3: no such identity: /home/paul/.ssh/id_ecdsa debug2: we did not send a packet, disable method debug1: No more authentication methods to try. Permission denied (publickey,password).
所有这些输出都在告诉我一些事情,但我不确定是什么。我做错了什么,为什么我无法让这个 ssh 通过密钥工作?
这里似乎有很多关于 11.10 ssh/key 访问问题的问题,但我找不到任何可以尝试的方法来解决此问题。
答案1
首先,
debug3:错误的RSA1标识符
debug3:无法加载“/home/paul/.ssh/id_rsa”作为 RSA1 公钥
debug2:key_type_from_name:未知密钥类型'-----BEGIN'
公钥不以“-----BEGIN”字样开头。私钥中才有这些字样。
第二,你确定这有效吗:
paul@paul-K53BY:~/.ssh$ ssh-copy-id -i id_rsa.pub 10.1.1.28
尝试:
ssh-复制-id 10.1.1.28
(这将默认为 ~/.ssh/id_rsa.pub。我不确定是否需要完整路径)。
第三,服务器上的主文件夹是否已加密?如果已加密,则需要物理登录服务器并始终保持此会话打开。然后,当您从计算机 ssh 到服务器时,将自动使用 ssh 密钥