Linux:如何設定authorized_keys以便可以以不同使用者身分登入

Linux:如何設定authorized_keys以便可以以不同使用者身分登入

本地用戶 ID:GregD 遠端用戶 ID:GregTD

我知道如何設定authorized_keys,以便我可以以GregD 身分登入。但我需要以 GregTD 連接到伺服器,儘管已將我的授權密鑰添加到 .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)

這些有用嗎?我想做的事情應該有效,是嗎?

相關內容