使用ssh连接虚拟机

如何在Linux中检查SSH服务是否开启?_笔记大全_设计学院 (python100.com)

1.检查虚拟机上是否安装了ssh 服务

在Linux中,默认情况下并不会安装SSH服务。因此,我们需要首先检查SSH服务是否已经安装在我们的系统中。使用以下命令进行检查:

dpkg -l | grep ssh

如果SSH服务已经安装,则会显示其版本信息和其他细节。如果没有,则需要使用以下命令来安装:

sudo apt-get install ssh

一旦SSH服务被安装,我们需要确保它已经启动并正在运行。使用以下命令来检查:

sudo service ssh status

如果该服务正在运行,则会显示“active(running)”的标识符。如果未运行,则可以使用以下命令启动服务:

sudo service ssh start

SSH服务在默认情况下使用22号端口进行通信。因此,我们需要确保该端口在我们的系统上开启并正在监听。

使用以下命令进行检查:

sudo netstat -tulnp | grep 22

如果SSH端口未被开放,则需要编辑SSH配置文件来进行设置。

使用以下命令来打开配置文件:

sudo nano /etc/ssh/sshd_config

找到“Port”字段并确保该字段的值为22。如果该值已被更改为另一个数字,则将其修改为22。保存并关闭文件。

使用以下命令来重启SSH服务以使更改生效:

sudo service ssh restart

一旦SSH服务已经成功配置,并且端口22已经被开放,我们可以使用telnet命令来测试SSH连接是否成功。

telnet localhost 22

如果连接成功,则将显示SSH服务的欢迎屏幕。

2.登录远程虚拟机

SSH原理与运用(一):远程登录 - 阮一峰的网络日志 (ruanyifeng.com)

阮大佬的网络日志,及其推荐看

基本的命令格式是这样的

ssh user@ip      

user 是自己虚拟机上的用户名,ip 为虚拟机的ip

比如我的的unbantu的用户名是 : songyuliang

如果不知道自己的用户名是啥可以在命令行输入

whoami

输出的就是自己的用户名:

如果不知道自己的ip:

在命令行输入:

ifconfig

inet: 后面的ip就是自己的ip地址

那么接下来连接虚拟机的命令就是

ssh songyuliang@192.168.215.130

他会出现:

Are you sure you want to continue connecting (yes/no/[fingerprint])?

我们输入yes 就行了

接下来会提示我们输入账号密码

输入虚拟机的账号密码就能够成功连上了

3.配置免用户,免密码
  • Mac版本

    教你在Linux中配置SSH实现免密登陆 | 《Linux就该这么学》 (linuxprobe.com)

  • win版本

    • 在 Windows 上实现 SSH 免密登录,你可以按照以下步骤进行操作:

      1. 生成 SSH 密钥对:使用 SSH 客户端(如 OpenSSH、PuTTY 等)生成 SSH 密钥对,包括公钥和私钥。你可以使用以下命令来生成密钥对:
      ssh-keygen -t rsa
      

      这将生成一对 RSA 密钥,其中私钥保存在本地,公钥保存在 ~/.ssh/id_rsa.pub 文件中。

      1. 将公钥添加到目标主机的 authorized_keys 文件中:将生成的公钥添加到目标主机的 ~/.ssh/authorized_keys 文件中。你可以使用以下命令将公钥复制到目标主机:
      ssh-copy-id user@hostname
      

      其中 user 是目标主机的用户名,hostname 是目标主机的 IP 地址或域名。

      1. 配置 SSH 客户端:打开 SSH 客户端配置文件 ~/.ssh/config(如果不存在则创建),并添加以下内容:
      Host hostname
        User user
        IdentityFile ~/.ssh/id_rsa
      

      hostname 替换为目标主机的 IP 地址或域名,将 user 替换为目标主机的用户名。

      完成上述步骤后,你应该能够通过 SSH 免密登录到目标主机。如果你需要使用代码实现这些步骤,下面是一个示例的 PowerShell 脚本:

      # 生成 SSH 密钥对
      ssh-keygen -t rsa
      
      # 将公钥添加到目标主机的 authorized_keys 文件中
      $sshPublicKey = Get-Content ~/.ssh/id_rsa.pub
      $sshPublicKey | ssh user@hostname "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"
      
      # 配置 SSH 客户端
      Add-Content -Path ~/.ssh/config -Value @"
      Host hostname
        User user
        IdentityFile ~/.ssh/id_rsa
      "@
      

      请注意,上述示例中的 userhostname 和文件路径需要根据你自己的情况进行替换。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值