【发布时间】:2016-03-03 23:14:29
【问题描述】:
我在使用 SSH 中的公钥时遇到了一些问题。
我想通过 SSH 将客户端 A 连接到服务器 B,无需密码。 我在每台机器上有 2 个用户:root 和 mysql。
通过公钥从 A 到 B 用 root 进行 ssh 连接是可以的。 现在,我想对用户 mysql 做同样的事情,但它不起作用。
我用这个命令在 A 上创建了一个键:
ssh-keygen -t rsa
然后,我从 ~/.ssh/id_rsa.pub(机器 A,用户 mysql)复制密钥并将其粘贴到 ~/.ssh/authorized_keys(机器 B,用户 mysql)上。
当我尝试从机器 A 上,用户 mysql 通过 ssh 连接到机器 B 上,如下所示:
ssh machineB
我遇到了以下问题:
连接被[机器B的ip地址]关闭
我做了 ssh -vvv machineB 并且有:
debug1: Authentications that can continue: publickey,gssapi-with-mic,password
debug3: start over, passed a different list publickey,gssapi-with-mic,password
debug3: preferred gssapi-with-mic,publickey,keyboard-interactive,password
debug3: authmethod_lookup gssapi-with-mic
debug3: remaining preferred: publickey,keyboard-interactive,password
debug3: authmethod_is_enabled gssapi-with-mic
debug1: Next authentication method: gssapi-with-mic
debug3: Trying to reverse map address xx.xxx.xxx.xxx
debug1: Unspecified GSS failure. Minor code may provide more information
Unknown code krb5 195
debug1: Unspecified GSS failure. Minor code may provide more information Unknown code krb5 195
debug1: Unspecified GSS failure. Minor code may provide more information Unknown code krb5 195
debug2: we did not send a packet, disable method
debug3: authmethod_lookup publickey
debug3: remaining preferred: keyboard-interactive,password
debug3: authmethod_is_enabled publickey
debug1: Next authentication method: publickey
debug1: Trying private key: /home/mysql/.ssh/identity
debug3: no such identity: /home/mysql/.ssh/identity
debug1: Offering public key: /home/mysql/.ssh/id_rsa
debug3: send_pubkey_test
debug2: we sent a publickey packet, wait for reply
Connection closed by machineB IP addr
机器 A 上的权限:
drwx------ 2 mysql mysql 4096 Nov 30 11:31 .
drwxr-xr-x 79 mysql mysql 28672 Nov 30 14:08 ..
-rw------- 1 mysql mysql 407 Oct 9 2009 authorized_keys
-rw------- 1 mysql mysql 668 Nov 24 16:18 id_dsa
-rw-r--r-- 1 mysql mysql 608 Nov 24 16:18 id_dsa.pub
-rw------- 1 mysql mysql 1675 Nov 30 10:08 id_rsa
-rwx------ 1 mysql mysql 1675 May 25 2010 id_rsa.archive
-rw-r--r-- 1 mysql mysql 400 Nov 30 10:08 id_rsa.pub
-rwxrwxr-x 1 mysql mysql 400 May 25 2010 id_rsa.pub.archive
-rwxrwxr-x 1 mysql mysql 8068 Nov 6 09:20 known_hosts
机器 B 上的权限:
drwx------ 2 mysql mysql 4096 Nov 30 11:47 .
drwxr-xr-x 25 mysql apache 4096 Nov 30 12:13 ..
-rw------- 1 mysql mysql 1424 Nov 30 10:10 authorized_keys
-rw-r--r-- 1 mysql mysql 3128 Jun 1 2011 known_hosts
【问题讨论】:
-
您在机器 B
/var/log/auth.log上有一些日志吗?你也可以让ssh -vvv machineB变得冗长 -
谢谢你的回答,我回答为“答案”,因为评论太长了;)
-
你能检查一下mysql的.ssh文件夹的权限吗?
ls -al ~/.ssh/ -
当然。我把结果放在这个问题上。
-
getent passwd mysql说什么?通常标准 mysql 用户没有主目录,因此 sshd 不知道在哪里查找 .ssh 目录,而 mysql 可能也没有登录 shell。
标签: linux ssh public-key