我对编码和软件开发还很陌生,所以这个问题听起来可能有点愚蠢,但我已经有一台 Linux 机器,我想从另一台机器连接到那台 Linux 机器,但要做到这一点,我需要 SSH 地址。我的问题是如何找到我的 Linux 机器的 ssh 地址,以便我可以通过另一台机器连接到它?
答案1
要使用 Internet 协议 (IP) 进行连接(用于网页浏览、电子邮件和其他用途,例如安全外壳 (SSH)),需要知道IP地址和IP 端口。 按照惯例,端口 22 用于 SSH,尽管这也不是一成不变的。
例如,如果 Edge 或 Firefox 等 Web 浏览器通过 HTTPS 连接到 Google.com,它会在 Cloudflare 等 DNS 服务器上查找 IP 地址,并获取2607:f8b0:4006:823::200e
Google.com 的 IPv6 地址。HTTPS 的惯例是使用端口 443,因此包含端口的完整地址是2607:f8b0:4006:823::200e:443
。
您需要找到另一台计算机的 IPv4 或 (IPv6) 地址,并通过端口 22 连接到该地址。如果您使用的是家庭网络,许多路由器会使用分配一段时间的 IP 地址连接每台计算机。您的计算机可能会使用192.168.0.2,而局域网 (LAN) 中的另一个可能被分配了 192.168.0.5。在许多 Linux 发行版中,输入ip addr show
在终端中找到机器地址...或者使用缩写ip a
。。
答案2
在“机器”(即“主机”)上打开 shell 并发出
sudo ss -tuanop | grep sshd
它会询问您的登录密码,因为它需要 root 权限才能读取守护进程的详细信息。
如果出现“未找到命令”错误,请使用命令
sudo netstat -tuanop | grep sshd
您将(希望)获得类似以下内容的内容
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 56723/sshd: /usr/sb off (0.00/0/0)
tcp6 0 0 :::22 :::* LISTEN 56723/sshd: /usr/sb off (0.00/0/0)
这告诉你:
- sshd 正在运行并提供服务。
- 使用的端口是
22
- 主机具有可用的 IPv4 和 IPv6 地址。
如果为空,则 ssh-server 守护进程未处于活动状态。——那么先解决该问题。
发出命令
ip --brief addr
这将显示主机当前使用的 IP 地址:
lo UNKNOWN 127.0.0.1/8 ::1/128
enp4s0 UP 192.168.188.15/24 2001:db7b::10/64
wlp3s0 DOWN
- IPv4 地址是
192.168.188.15
- IPv6 地址是
2001:db7b::10
发出命令
hostname
输出是您的 Linux 计算机的(网络)名称。如果您的网络中所有配置都正确,则可以用此名称来寻址您的计算机。否则,您必须使用 IP 地址。
这里的输出是
linuxmachine
您应该知道您的用户名。否则问题
whoami
获取您的用户名。
了解这些详细信息后,您可以尝试从网络中的计算机进行连接:
使用上面的示例,您可以通过以下命令之一连接 ssh:
# As the port 22 is default you can use the simplest command:
ssh username@linuxmachine
#To tell explicitely the port
ssh -p22 username@linuxmachine
#If "linuxmachine is not found, use an IP-address:
ssh -p22 [email protected]
#or by IPv6 address:
ssh -p22 username@fe80::978b:e12:c126:15ca
´´´