我想build立ssh隧道到在虚拟机的计算机上的mysql服务器。 如果机器重新启动,隧道也必须工作。
所以,让我们说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).
现在我试着input文件id_rsa.pub.bak的密码。 否认。
然后我看到,它使用的密钥在/ home / [用户] / .ssh / id_rsa这是不同于我想要复制的公钥,我的意思是当然私钥是不同的,但我的意思是我复制另一个公钥私钥。 所以我尝试使用它的密码。 也否认。
我怎么能debugging为什么密码被拒绝?
更新
基于评论,我创build了一个新的名为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,所以评论说他们是好的。
更新
尝试在计算机上设置密码validation是,并重新启动服务。 重新启动由答案没有工作,它写sshd不认可,所以我重新使用:
sudo /etc/init.d/ssh restart
然后在C机器上再次尝试复制到一台机器。
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而不input密码。 但是我可以连接input密码。 所以这里显然还是错的 而我试图复制的关键是空密码。 当我用ssh连接时 – 我input了非空的密码。
相同的公钥不能接受空密码和非空密码,这是有道理的。 但是为什么我要上传的公钥和authorized_keys文件中的公钥是一样的,如果密码不一样呢? 我没有检查每一个字符,但它不太可能的关键是如此相似,开始和结束将是相同的,即使当我认为密码不同。
您实际上需要login才能复制您的密钥,您无权访问远程计算机(禁用无效的密钥和密码身份validation):
在/ etc / ssh / sshd_config中重新启用passwdauthentication:
PasswordAuthentication yes
然后重新启动服务:
service sshd restart
复制你的公钥:
ssh-copy-id -i ~/.ssh/id_rsa.pub USER@HOST -p PORT [Enter user password]
尝试再次login,不需要密码。
然后禁用密码authentication。
Permission denied (publickey)
是远程SSH服务器说:“我只接受公钥作为authentication方法,离开”。
这是您的主要挑战:进入远程系统。 一旦你可以做到这一点,你可以上传你的密钥:
ssh-copy-id
– 例如,如果您正在replace旧的密钥,则可以指定其他密钥。 ~/.ssh/authorized_keys
手动添encryption钥。 最后发现问题。
其实我不需要复制公钥。 相同的公钥是两个私钥 – 带有密码,没有密码。 我以为我有没有密码的私钥,但实际上我没有。 我只有.ppk没有密码。 这是沟通的错误。 所以同事做了私钥没有密码短语,所以现在我可以使用SSHlogin没有密码。 我读过,没有密码是坏的,但同事说好。 我需要没有密码,因为我需要在重新启动时运行shell脚本 – 我想在计算机重新启动时启动autossh。
所以这种解决scheme是这次 – 如果你想不用密码login – 检查你的私钥是否真的没有密码。