![Linux:如何设置 authorized_keys 以便可以以不同用户身份登录](https://linux22.com/image/1557225/Linux%EF%BC%9A%E5%A6%82%E4%BD%95%E8%AE%BE%E7%BD%AE%20authorized_keys%20%E4%BB%A5%E4%BE%BF%E5%8F%AF%E4%BB%A5%E4%BB%A5%E4%B8%8D%E5%90%8C%E7%94%A8%E6%88%B7%E8%BA%AB%E4%BB%BD%E7%99%BB%E5%BD%95.png)
本地用户 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)
这些有用吗?我想做的事情应该有用,对吧?