bagaimana cara ssh ke ubuntu ipv6 di LAN?

57

Saya dapat melakukan ping kotak Ubuntu saya melalui perintah: (di mana c2h2ttt terdaftar di / etc / hosts)

c2h2@c2h2crawler:~/ttt$ ping6 -I eth1 c2h2ttt
PING c2h2ttt(c2h2ttt) from fe80::21b:21ff:fe22:e865 eth1: 56 data bytes
64 bytes from c2h2ttt: icmp_seq=1 ttl=64 time=10.3 ms
64 bytes from c2h2ttt: icmp_seq=2 ttl=64 time=2.06 ms
64 bytes from c2h2ttt: icmp_seq=3 ttl=64 time=1.33 ms

Dan ketika saya coba ssh -6 c2h2tttitu menunjukkan:

c2h2@c2h2crawler:~/ttt$ ssh -6 c2h2ttt
ssh: connect to host c2h2ttt port 22: Invalid argument

Apa perintah yang benar?


Di sisi server / etc / ssh / sshd_config memiliki:

ListenAddress ::
ListenAddress 0.0.0.0

Saya bisa ssh ke c2h2ttt melalui ipv4 pada port 22. dan netstat -lnt | grep :22sekarang

root@c2h2think:~# netstat -lnt | grep :22
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN
tcp6       0      0 :::22                   :::*                    LISTEN

ufw digunakan dan memungkinkan lalu lintas masuk apa pun di port 22

root@c2h2think:~# ufw status
Status: active

To                         Action      From
--                         ------      ----
22                         ALLOW       Anywhere

Dan konfigurasi iptables:

root@c2h2think:~# ip6tables -L -v -n
Chain INPUT (policy DROP 55 packets, 10758 bytes)
pkts bytes target     prot opt in     out     source               destination 
    0     0 ACCEPT     all      lo     *       ::/0                 ::/0        

Chain FORWARD (policy DROP 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination 

Chain OUTPUT (policy DROP 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination 
    0     0 ACCEPT     all      *      lo      ::/0                 ::/0  
c2h2
sumber
Anda mungkin perlu mengedit file sshd.conf Anda dan / atau restart sshd sehingga menyadari ada alamat v6 baru untuk didengarkan.
Periksa apa yang dikatakan netstat -lnt | grep :22(buka soket numerik tcp | berisi: 22).
ephemient
Anda melakukan terbuka port 22 dengan ip6tables ... benar?
Ignacio Vazquez-Abrams
Satu detik saya periksa ip6tables
c2h2

Jawaban:

89

Coba tentukan antarmuka untuk klien ssh. Utilitas ping6 memungkinkan Anda menentukan antarmuka, namun ssh tidak memiliki sakelar untuk itu, Anda harus menggunakan sintaks ini:

ssh -6 fe80 :: 21b: 21ff: fe22: e865% eth1
John T
sumber
2
wow, itu berhasil, terima kasih! hanya karena masalah eth1
c2h2
2
mencobanya, bekerja untuk saya juga! Mengapa kita harus menentukan antarmuka?
Max Beikirch
9
@MaxBeikirch karena SETIAP antarmuka jaringan yang sepenuhnya operasional akan memiliki alamat fe80:. Jadi, sistem tidak tahu antarmuka untuk mengirim lalu lintas ke mana. Ini adalah masalah perutean lalu lintas. Untuk alamat lain, sistem sering membuat pilihan cerdas karena komputer memberikan rute ke alamat "terdekat" (artinya alamat dalam subnet yang sama), tetapi itu tidak berfungsi dengan fe80: karena semua antarmuka jaringan adalah bagian dari subnet yang sama.
TOOGAM
1
@TOOGAM Bagaimana saya bisa menentukan postfix antarmuka untuk host ~/.ssh/config?
PVT
@PVitt: Cara biasa adalah menentukan pengenal sistem (seperti alamat IP), dan kemudian menempelkan tanda persen, dan kemudian nama antarmuka, seperti yang ditunjukkan oleh jawaban yang ditempelkan pada% eth1 ke akhir IPv6 alamat. eth1 adalah pengenal antarmuka. Jika itu tidak berhasil, periksa halaman manual untuk file OpenSSH yang bernama config] (man.openbsd.org/cgi-bin/man.cgi?query=ssh_config&sektion=5), dan jika itu tidak membantu, pertimbangkan untuk membuat pertanyaan baru (tentang SuperUser) dengan detail yang lebih tepat sehingga kami dapat membantu Anda lebih lanjut.
TOOGAM
8

Menautkan alamat lokal tidak seharusnya digunakan untuk SSH, itu untuk hal-hal bootstrap protokol tingkat rendah. Jika Anda tidak memiliki awalan yang disediakan ISP untuk digunakan di jaringan Anda, maka hasilkan awalan unik-lokal dari fd00 :: / 8 sebagai gantinya:

http://en.wikipedia.org/wiki/Unique_local_address

Paul
sumber
//, Bagaimana seseorang mengakses alamat IPV6 yang dapat dirutekan di Internet IPv6 global?
Nathan Basanese
@NathanBasanese: ISP Anda harus menyediakan layanan IPv6 atau membuat terowongan dengan salah satu pialang IPv6, seperti Hurricane Electric
Radu C
3
Tautan alamat lokal adalah alamat jaringan. Jika Anda ingin menggunakannya untuk SSH, silakan. Hanya tahu bagaimana menangani setiap komplikasi, seperti apa yang dibahas oleh pertanyaan ini dan jawaban John T. Saya punya kasus di mana ULA (fd00 :: / 8) tidak ditugaskan seperti yang diharapkan. Dalam hal ini, SSH menggunakan tautan-lokal (fe80 :: / 16) bekerja sangat baik. Saya menghindari tautan-lokal hanya karena kerumitan berurusan dengan perutean (perlu menentukan antarmuka), tetapi bukan karena alamat secara teknis kurang mampu mengirim atau menerima lalu lintas.
TOOGAM
2

Untuk menghubungkan SSH IPv6 Anda paling memiliki konektivitas ISP IPv6 di komputer Anda dan daripada mencoba sebagai.

root@hostname[~]# ssh -6 2205:f200:40:401::9ab4:8b43

dan perintah ini akan meminta pertama kali untuk mengkonfirmasi kunci SSH. dari tipeY/Yes

Catatan: 2205:f200:40:401::9ab4:8b43berarti IPv6 Anda. Ini hanya contoh IPv6 jadi jangan lupa untuk mengganti IPv6 Anda.

Shiv Singh
sumber