ssh连接服务器

对于新服务器,我们常有需求通过ssh远程连接。
对于ubuntu,分几步

sudo apt  install nmap
nmap -p 22 127.0.0.1
sudo ufw allow ssh

确认22端口是否打开,以及打开

systemctl status ssh
sudo apt install openssh-server

确认ssh是否安装以及安装

sudo apt install net-tools
ifconfig

安装网络工具来确认ip地址


对于wsl,有类似的操作流程,以下是我通过询问chatgpt得到的信息。

我想通过ssh连win10上的wsl,我的wsl是ubuntu,但是连接失败

2023/5/29 15:56:11

要通过 SSH 连接到 WSL 上运行的 Ubuntu,您需要进行以下配置:

在 WSL 中安装 OpenSSH 服务器

打开 WSL 终端,并运行以下命令来安装 OpenSSH 服务器:

sudo apt update
sudo apt install openssh-server
确认防火墙允许 SSH 服务

检查 Windows 防火墙以确保它允许传入的 SSH 流量。打开 PowerShell 并运行以下命令:

Get-NetFirewallRule -Name ssh
如果 “Enabled” 列的值为 False,则运行以下命令启用该规则:

Set-NetFirewallRule -Name ‘OpenSSH-Server-In-TCP’ -Enabled True
获取 WSL 的 IP 地址

在 WSL 终端中运行以下命令以获取 WSL 实例的 IP 地址:

ip addr show eth0 | grep inet | awk ‘{ print KaTeX parse error: Expected 'EOF', got '}' at position 4: 2; }̲' | sed 's/\/.*//’
在 Windows 上安装 SSH 客户端

您需要在 Windows 上安装 SSH 客户端,例如 PuTTY 或 Git Bash。您可以从以下网站下载这些工具:

PuTTY:https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html
Git Bash:https://git-scm.com/downloads
使用 SSH 连接到 WSL

打开 SSH 客户端并使用 WSL 实例的 IP 地址和您在 WSL 中创建的用户名进行连接。例如:

ssh your_username@wsl_ip_address
现在,您应该可以通过 SSH 连接到运行 Ubuntu 的 WSL 实例了。如果仍然存在问题,请提供更多详细信息,例如错误消息或日志。

2023/5/29 15:57:59

第二步,Set-NetFirewallRule : 找不到任何“InstanceID”属性等于“OpenSSH-Server-In-TCP”的 MSFT_NetFirewallRule 对象。请验证属性值, 然后重试。
所在位置 行:1 字符: 1

  • Set-NetFirewallRule -Name ‘OpenSSH-Server-In-TCP’ -Enabled True
  •   + CategoryInfo          : ObjectNotFound: (OpenSSH-Server-In-TCP:String) [Set-NetFirewallRule], CimJobException
      + FullyQualifiedErrorId : CmdletizationQuery_NotFound_InstanceID,Set-NetFirewallRule
    
    

2023/5/29 15:58:23

如果在运行 Set-NetFirewallRule 命令时出现错误 “找不到任何“InstanceID”属性等于“OpenSSH-Server-In-TCP”的 MSFT_NetFirewallRule 对象”,可能是因为没有安装 OpenSSH 服务器或者防火墙规则的名称不匹配。

请尝试按照以下步骤解决问题:

确认已在 WSL 中安装了 OpenSSH 服务器。如果未安装,请使用以下命令安装:
sudo apt update
sudo apt install openssh-server
检查防火墙规则的名称是否与命令中使用的名称相同。请使用以下命令检查规则的名称:
Get-NetFirewallRule -Name ssh
确保规则的名称包含 “OpenSSH-Server-In-TCP”。如果名称不匹配,请将命令中的名称替换为正确的名称。

如果上述步骤无法解决问题,请提供更多详细信息,例如完整的错误消息和您执行的其他命令。

你可能感兴趣的:(ssh,服务器,运维)