원격 호스트에 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
localhost에서 무선 인터페이스를 지정할 때 호스트에 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 파일을 원격 호스트로 보낼 수 없나요?
인터페이스를 선택적으로 지정하는 표기법에 대한 자세한 내용은 어디에서 읽을 수 있습니까?(Bare IP만으로는 연결할 수 없으므로 Chat GPT3.5에서 권장함)
%
열려면 Ctrl-Fhttps://man.openbsd.org/OpenBSD-current/man1/ssh.1, 또는 on은man ssh
아무것도 반환하지 않습니다.
답변1
내 인터페이스 대신 대상 인터페이스에 SSH로 연결할 수 없는 이유는 무엇입니까?
링크 로컬 주소는 전 세계 모든 장치에 대해 정확히 동일한 CIDR 범위에 있습니다.
인터페이스를 지정해야 하는 이유는 운영 체제가 요청을 라우팅할 위치를 알아야 하기 때문입니다. 일반적으로 IP 주소의 CIDR 범위는 라우팅 테이블을 통해 운영체제에 어떤 인터페이스를 사용할지 알려주지만, 링크-로컬 주소는 모두 같은 범위에 있으므로 이는 작동하지 않으며 운영체제에 명시적으로 알려주어야 합니다. 요청을 보낼 인터페이스.