如何在 11.10 中使用密钥访问 ssh

如何在 11.10 中使用密钥访问 ssh

我之前曾使用过 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 密钥

相关内容