这可能是一个重复的问题,但我在搜索结果中找不到任何适合我的答案。
我正在尝试从 office_desktop_host 连接到 prod_host,该主机是我通过笔记本电脑上的 VPN 从 windows/putty 连接的。有趣的是,当我在办公室时,我可以从 office_desktop_host ssh 到这个 prod_host,无需任何密码
基本上,我正在尝试运行一些脚本,但它会提示输入密码,如果我按取消,则会得到以下信息:
ssh_exchange_identification: Connection closed by remote host.
我已将 prod_host 上的 hosts.allow 更改为 SHD: ALL [这可能有风险,但这是一个不同的讨论]
1] 我如何才能进行无密码 ssh,为什么当我使用 VPN 时,同一台主机之间的 ssh 会有所不同
答案1
您需要在要远程连接的任何机器上都拥有公钥文件。要实现无密码连接,您要么需要在 OS X 上运行 Keychain 之类的程序,要么我相信 Putty 在 Windows 上有一个名为 Pageant 的程序,可以提供类似的功能。
或者生成没有密码的公钥文件(不推荐)。
答案2
PuTTyGen 会在您要连接的计算机(即桌面)上创建一个 ssh 密钥。公钥和私钥位于一个目录中:ssh(假设是 Windows)。将它们留在那里。
在您要连接的帐户的远程 UNIX 框中,在登录目录中创建一个 .ssh 目录。.ssh 目录的权限必须为 700,登录目录的权限必须为 755。使用常规 psftp(或 plink)将公钥从您的桌面 ssh 目录复制到远程 .ssh 目录。
远程主机在 /etc 中有一个文件: ./ssh/ssh_config ./ssh/sshd_config
这些控制您的访问权限以及您由谁登录/如何登录。
在我看来,这更像是您正在使用活动目录或 cifs(samba)从您的桌面办公应用程序访问 unix 框文件,这与以用户身份登录不同。