我想设置到具有虚拟机的计算机中的mysql服务器的ssh隧道。如果重新启动计算机,则隧道也必须工作。
因此可以说A是装有linux软件的计算机。B-计算机A中的虚拟机。
MySQL在B中。
C-是计算机A中的一个虚拟机,它想连接到B中的MySQL。
现在通过这篇文章:http : //www.thegeekstuff.com/2008/11/3-steps-to-perform-ssh-login-without-password-using-ssh-keygen-ssh-copy-id/
我尝试将公钥复制到远程服务器。我想我需要将其复制到计算机A。
ssh-copy-id -i id_rsa.pub.bak [user]@[IP of A] -p [port of A]
Enter passphrase for key '/home/[user]/.ssh/id_rsa':
Permission denied (publickey).
现在,我尝试输入文件id_rsa.pub.bak的密码。它否认了。
然后我看到它使用了/home/[user]/.ssh/id_rsa中的密钥,该密钥与我要复制的公共密钥不同,我的意思是私钥当然不同,但是我的意思是我复制了另一个私钥。所以我尝试使用它的密码。也否认了。
我该如何调试为什么密码短语被拒绝?
更新资料
根据评论,我创建了一个新的名为id_rsa.pub的公共文件,现在所有内容都在一行中
并运行并仍然出现错误。
ssh-copy-id -i id_rsa.pub [host and port] -vvv
Enter passphrase for key '/home/[user]/.ssh/id_rsa':
Permission denied (publickey).
更新资料
检查了A计算机中.ssh文件夹和authorized_keys文件的权限-它们分别是700和600,因此注释中说它们很好。
更新资料
尝试在计算机上设置密码身份验证为“是”,然后重新启动服务。重新启动,因为答案不起作用,它写了无法识别的sshd,所以我使用以下命令重新启动:
sudo /etc/init.d/ssh restart
然后在C机上再次尝试复制到A机。
ssh-copy-id -i id_rsa.pub [user@host] -p [port] -v
仍然一样:
Enter passphrase for key '/home/[user]/.ssh/id_rsa':
Permission denied (publickey).
如果我要手动将密钥复制到authorized_keys,则会看到公钥已存在,与我要复制的公钥相同。我问我的同事,他说他没有复制。所以我什至不知道它怎么可能在那里。
好的,如果在那里,那就太好了,但是如果呆在那里,则不输入密码就不会让我与ssh连接。但是我能够输入密码。因此,这里显然仍然存在问题。我要复制的密钥是空密码。当我与ssh连接时-输入的密码不为空。
相同的公钥不能接受空密码短语和非空密码短语,这是有道理的。但是,如果密码短语不同,为什么我要上传的公钥与authorized_keys文件中的公钥相同?我没有检查每个字符,但是即使我认为密码短语不同,键也不可能如此相似,以至于开始和结束都相同。
id_rsa
?我期望ssh-copy-id
失败的方式是错误消息,因为它期望以结尾的文件.pub
。随着您的结束,.bak
它可能会使用id_rsa.pub.bak.pub
。