Linux:如何设置 authorized_keys 以便可以以不同用户身份登录

Linux:如何设置 authorized_keys 以便可以以不同用户身份登录

本地用户 ID:GregD 远程用户 ID:GregTD

我知道如何设置 authorized_keys,以便我可以以 GregD 身份登录。但我需要以 GregTD 身份连接到服务器,尽管已将我的 authorized_keys 添加到 .ssh/(是的,权限设置正确),甚至已成功运行 ssh-copy-id,但当我尝试 ssh GregTD@foo 时,系统仍要求我输入密码

远程 .ssh 列表:

GregTD@foo $ ls -alh
total 32K
drwx------+ 2 GregTD GregTD 4.0K Mar 29 10:53 ./
drwxrwxr-x+ 6 GregTD GregTD 4.0K Mar 29 10:52 ../
-rw-------+ 1 GregTD GregTD  398 Mar 29 10:53 authorized_keys
lrwxrwxrwx. 1 GregTD GregTD   15 Mar 29 10:31 authorized_keys2 -> authorized_keys
-rw-rw-r--+ 1 GregTD GregTD  188 Mar 29 10:18 known_hosts

我的 .ssh 列表:

$ ls -alh ~/.ssh/
total 200
drwx------   16 GregD  GregD   544B Mar 29 10:53 ./
drwxr-xr-x+ 184 GregD  GregD   6.1K Mar 26 09:37 ../
-rwx------    1 GregD  GregD   2.1K Feb 28 12:09 authorized_keys*
-rwx------    1 GregD  GregD   679B Feb 28 12:09 config*
-rw-------    1 GregD  GregD   1.7K Feb 28 12:09 github_rsa
-rw-r--r--    1 GregD  GregD   401B Feb 28 12:09 github_rsa.pub
-rw-------    1 GregD  GregD   1.6K Feb 28 12:09 id_rsa
-rw-r--r--    1 GregD  GregD   398B Feb 28 12:09 id_rsa.pub
-rwx------    1 GregD  GregD    47K Mar 19 21:15 known_hosts*

我做了什么:

$ ssh-copy-id GregTD@foo
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/Users/GregD/.ssh/id_rsa.pub"
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
GregTD@foo's password: 

Number of key(s) added:        1

Now try logging into the machine, with:   "ssh 'GregTD@foo'"
and check to make sure that only the key(s) you wanted were added.


$ ssh -v GregTD@foo
OpenSSH_7.4p1, LibreSSL 2.5.0
debug1: Reading configuration data /Users/GregD/.ssh/config
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: Connecting to foo [10.146.103.127] port 22.
debug1: Connection established.
debug1: identity file /Users/GregD/.ssh/id_rsa type 1
debug1: key_load_public: No such file or directory
debug1: identity file /Users/GregD/.ssh/id_rsa-cert type -1
debug1: key_load_public: No such file or directory
debug1: identity file /Users/GregD/.ssh/id_dsa type -1
debug1: key_load_public: No such file or directory
debug1: identity file /Users/GregD/.ssh/id_dsa-cert type -1
debug1: key_load_public: No such file or directory
debug1: identity file /Users/GregD/.ssh/id_ecdsa type -1
debug1: key_load_public: No such file or directory
debug1: identity file /Users/GregD/.ssh/id_ecdsa-cert type -1
debug1: key_load_public: No such file or directory
debug1: identity file /Users/GregD/.ssh/id_ed25519 type -1
debug1: key_load_public: No such file or directory
debug1: identity file /Users/GregD/.ssh/id_ed25519-cert type -1
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_7.4
debug1: Remote protocol version 2.0, remote software version OpenSSH_7.4
debug1: match: OpenSSH_7.4 pat OpenSSH* compat 0x04000000
debug1: Authenticating to foo:22 as 'GregTD'
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: algorithm: curve25519-sha256
debug1: kex: host key algorithm: ecdsa-sha2-nistp256
debug1: kex: server->client cipher: aes128-ctr MAC: hmac-sha2-256 compression: none
debug1: kex: client->server cipher: aes128-ctr MAC: hmac-sha2-256 compression: none
debug1: expecting SSH2_MSG_KEX_ECDH_REPLY
debug1: Server host key: A key
debug1: Host 'foo' is known and matches the ECDSA host key.
debug1: Found key in /Users/GregD/.ssh/known_hosts:124
debug1: rekey after 4294967296 blocks
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS received
debug1: rekey after 4294967296 blocks
debug1: SSH2_MSG_EXT_INFO received
debug1: kex_input_ext_info: server-sig-algs=<rsa-sha2-256,rsa-sha2-512>
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 RSA public key: /Users/GregD/.ssh/id_rsa
debug1: Authentications that can continue: publickey,gssapi-keyex,gssapi-with-mic,password
debug1: Trying private key: /Users/GregD/.ssh/id_dsa
debug1: Trying private key: /Users/GregD/.ssh/id_ecdsa
debug1: Trying private key: /Users/GregD/.ssh/id_ed25519
debug1: Next authentication method: password
GregTD@foo's password: 

运行 ssh -vv 两次,一次以 GregTD 身份(失败),一次以 GregD 身份(成功)

有两点不同:失败:

debug1: rekey after 4294967296 blocks
debug2: key: /Users/m082166/.ssh/id_rsa (0x7fef96e12320)

成功:

debug1: rekey after 4294967296 blocks
debug2: key: /Users/m082166/.ssh/id_rsa (0x7fb600e0a420)
...
debug1: Offering RSA public key: /Users/m082166/.ssh/id_rsa
debug2: we sent a publickey packet, wait for reply
debug1: Server accepts key: pkalg rsa-sha2-512 blen 279

第二次成功(想看看密钥是否改变了。确实改变了):

debug2: key: /Users/m082166/.ssh/id_rsa (0x7fb600e0a420)

这些有用吗?我想做的事情应该有用,对吧?

相关内容