我在远程主机上配置了 sshd /etc/ssh/sshd_config.d/custom.conf
:
AddressFamily inet6
PermitRootLogin yes
PubkeyAuthentication no
Match Address fe80::d075:6982:4410:e071
这是我主机的 Ubuntu LTS 上全新安装的 openssh-server,我没有更改/etc/ssh/sshd_config
.ip l
在我的远程主机上返回:
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eno1: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc fq_codel state DOWN mode DEFAULT group default qlen 1000
link/ether 18:60:24:be:5c:f6 brd ff:ff:ff:ff:ff:ff
altname enp2s0
3: wlo1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DORMANT group default qlen 1000
link/ether e4:42:a6:15:fa:63 brd ff:ff:ff:ff:ff:ff
altname wlp3s0
但是当我使用主机的无线接口作为可选参数时,%
我无法通过 ssh 连接到它,以下命令:
ssh -6 root@fe80::cc08:9465:8dba:15a9%wlo1
ssh -6 root@fe80::cc08:9465:8dba:15a9%wlp3s0
分别返回这些错误:
ssh: Could not resolve hostname fe80::cc08:9465:8dba:15a9%wlo1: Name or service not known
ssh: Could not resolve hostname fe80::cc08:9465:8dba:15a9%wlp3s0: Name or service not known
在本地主机上指定无线接口时,我可以 ssh 到主机,ssh -6 root@fe80::cc08:9465:8dba:15a9%wlp4s0
但无法 scp 文件,
scp -6 ~/.ssh/id_rsa.pub root@fe80::cc08:9465:8dba:15a9%wlp4s0:~
返回
ssh: Could not resolve hostname fe80: Temporary failure in name resolution
lost connection
我尝试将地址与界面一起包装起来,就像scp -6 ~/.ssh/id_rsa.pub root@[fe80::cc08:9465:8dba:15a9%wlp4s0]:~
用大括号括起来一样,但没有成功。
fe80::cc08:9465:8dba:15a9%wlp4s0
可以通过 到达ping
。两台主机都位于同一个无线 LAN 上,并使用 Ubuntu LTS Desktops 22.04 作为操作系统。我已经在远程主机上打开了端口 22 -ufw status
在远程主机上返回
Status: active
To Action From
-- ------ ----
22/tcp ALLOW fe80::d075:6982:4410:e071
这里发生了什么?
为什么我不能 ssh 指定目标的接口而不是我自己的接口?
我可以从本地主机 ssh 到远程主机,为什么我不能 scp 文件到远程主机中?
我在哪里可以阅读有关用于选择性指定接口的符号的更多信息(Chat GPT3.5 建议使用它,因为我无法仅使用裸 IP 进行连接)? Ctrl-F
%
打开https://man.openbsd.org/OpenBSD-current/man1/ssh.1,或 onman ssh
不返回任何内容。
答案1
为什么我不能 ssh 指定目标的接口而不是我自己的接口?
对于世界上的每台设备,链路本地地址都位于完全相同的 CIDR 范围内。
需要指定接口的原因是操作系统需要知道将请求路由到哪里。通常,IP 地址的 CIDR 范围会通过路由表告诉操作系统要使用哪个接口,但由于链路本地地址都在同一范围内,因此这是行不通的,您需要明确告诉操作系统哪个接口发送请求。