我想设置到具有虚拟机的计算机中的 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).
Run Code Online (Sandbox Code Playgroud)
现在我尝试输入文件 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).
Run Code Online (Sandbox Code Playgroud)
更新
检查了 A 计算机中 .ssh 文件夹和 authorized_keys 文件的权限 - 它们是 700 和 600,所以评论说它们很好。
更新
尝试在 A 计算机上设置密码身份验证是并重新启动服务。根据答案重新启动不起作用,它写了 sshd 无法识别,所以我重新启动:
sudo /etc/init.d/ssh restart
Run Code Online (Sandbox Code Playgroud)
然后在C机器上再次尝试复制到A机器。
ssh-copy-id -i id_rsa.pub [user@host] -p [port] -v
Run Code Online (Sandbox Code Playgroud)
还是一样:
Enter passphrase for key '/home/[user]/.ssh/id_rsa':
Permission denied (publickey).
Run Code Online (Sandbox Code Playgroud)
如果我手动将密钥复制到authorized_keys,我会看到公钥已经存在,与我想复制的相同。我问我同事,他说他没有抄袭。所以我什至不明白它怎么会在那里。
好吧,如果它在那里会很好,但是留在那里它不会让我在不输入密码的情况下连接到 ssh。但是我能够连接输入密码。所以这里显然还是有问题。我试图复制的密钥是空密码。当我与 ssh 连接时 - 我输入的密码不是空的。
相同的公钥不能接受空密码和非空密码,这是有道理的。但是,如果密码短语不同,为什么我尝试上传的公钥与authorized_keys文件中的公钥相同?我没有检查每个字符,但密钥不太可能如此相似,以至于即使我认为密码不同,开始和结束也会相同。
Nab*_*ane 30
您实际上需要登录才能复制您的密钥,您无权访问远程机器(无效密钥和密码验证已禁用):
在 /etc/ssh/sshd_config 中重新启用 passwd 身份验证:
PasswordAuthentication yes
Run Code Online (Sandbox Code Playgroud)
然后重启服务:
service sshd restart
Run Code Online (Sandbox Code Playgroud)
复制您的公钥:
ssh-copy-id -i ~/.ssh/id_rsa.pub USER@HOST -p PORT
[Enter user password]
Run Code Online (Sandbox Code Playgroud)
再次尝试登录,不需要密码。
然后禁用密码验证。
Oli*_*Oli 14
Permission denied (publickey) 是远程 SSH 服务器说“我只接受公钥作为身份验证方法,走开”。
这是您的主要挑战:进入远程系统。一旦你能做到这一点,你就可以上传你的密钥:
ssh-copy-id- 例如,如果您正在替换旧密钥,它将允许您指定不同的密钥。~/.ssh/authorized_keys以手动附加您的密钥。终于找到问题了。
其实我不需要复制公钥。相同的公钥用于两个私钥 - 带密码和不带密码。 我以为我有没有密码的私钥,但实际上我没有。我只有没有密码的 .ppk。那是通讯小姐。所以同事制作了没有密码的私钥,所以现在我可以使用没有密码的 ssh 登录。我读到没有密码是不好的,但同事说没关系。我需要没有密码,因为我需要在重新启动时运行 shell 脚本 - 我想在计算机重新启动时启动 autossh。
所以这次的解决方案是 - 如果您想在没有密码的情况下登录 - 请检查您的私钥是否真的没有密码。
| 归档时间: |
|
| 查看次数: |
74384 次 |
| 最近记录: |