linux - 正确的 .ssh/config 设置以跳 ssh

标签 linux ssh netcat

我有一个 2 层深的 ssh 网络。我有服务器 myserv.co.uk 和服务器 B。我通过 .ssh/config 文件给 myserv.co.uk 一个别名,叫做 A。服务器 A 受密码保护,一旦进入服务器 A,我就可以 ssh B 而无需使用密码。

我在本地机器上使用了 ssh-keygen 并复制到服务器 A 上,这样我就可以成功地执行 ssh A 而不必使用密码。

一切顺利。但是,我需要直接通过 ssh/scp 连接到服务器 B。关于如何执行此操作有很多内容,我已尝试实现。我有以下 .ssh/config:

Host A
        User first.last

        Hostname myserv.co.uk

Host B
        User first.last
        ProxyCommand ssh -W B:22 A

所以当我执行 ssh B 时,系统会要求我输入密码。这不应该发生在服务器 A 中,默认情况下我可以在没有密码的情况下通过 ssh 连接到服务器 B。这是输出:

$ ssh B

Welcome to myserv

This system is for authorised users, if you do not have authorised access
please disconnect immediately.

Password: 

我输入服务器 A 的密码,这有效。我认为是这种情况,因为它是用户 first.last 的密码。

但是,假设在服务器 A 中,我可以在没有密码的情况下通过 ssh 进入服务器 B,并且我可以使用 keygen 从本地 ssh 到服务器 A,为什么在执行 ssh B< 时要求我输入密码?

最佳答案

您是否将自己的公钥复制到两台服务器上的授权 key ?

你可以用 ssh-copy-id 来完成

关于linux - 正确的 .ssh/config 设置以跳 ssh,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31328809/

相关文章:

Java BufferedImage 到剪贴板给出 IIOException

macos - 全新安装后设置 git

netcat - 如何在netcat中转义十六进制值

linux - 将 ASP.NET 代码通过 FTP 传输到 Linux 系统后修复权限

linux - 如何在 Linux 上编译和运行来自交互式计算机图形的代码 - 基于着色器的 OPENGL®(第 6 版)的自上而下的方法?

linux - 在 Linux 上删除以前版本的文件(格式为 name_#.#.#-#.extension)

linux - 如何在两个linux系统上使用sz命令

java - SSH 服务器应该向客户端发送什么作为对用户按退格键的响应?

linux - 强制 netcat 立即发送消息(无缓冲)

http - 如果 GET 请求中未指定 http 版本,为什么服务器不等待 http header ?