• 使用ssh在本地环境(Windows)连接虚拟机以及其中的docker容器


    配置虚拟机防火墙

    防火墙的一系列操作需要root权限,默认是没有root密码的,所以首先需要设置root密码:

    sudo passwd root
    
    • 1

    按提示完成root密码设置
    切换到root账户

    su root
    
    • 1

    启用22端口并重启防火墙

    firewall-cmd --permanent --add-port=22/tcp
    firewall-cmd --reload
    
    • 1
    • 2

    或者直接关闭防火墙

    systemctl stop firewalld.service
    
    • 1

    ssh连接虚拟机

    查看IP地址
    安装net-tools
    首先安装查看ip地址的工具net-tools,已经有了可以不下载

    sudo apt-get update
    sudo apt-get install net-tools
    
    • 1
    • 2

    通过ifconfig查看虚拟机ip地址在这里插入图片描述
    配置虚拟机SSH

    1. 安装openssh-client:sudo apt-get install openssh-client
    2. 安装openssh-server:sudo apt-get install openssh-server
    3. 启动ssh-server:sudo /etc/init.d/ssh restart
    4. 确认ssh-server工作正常:netstat -tpl (看到ssh表示工作正常)

    登陆
    此时便可以通过在主机cmd上通过命令通过普通用户

    ssh username@ip -p port
    
    • 1

    进行登陆
    如果要设置免密登陆请参考这篇https://blog.csdn.net/qq_57150526/article/details/134387937?spm=1001.2014.3001.5502

    如果用root登陆则需要修改 /etc/ssh/sshd_config,在打开的文件中找到 PermitRootLogin将其改为PermitRootLogin yes,并取消注释,保存退出。在这里插入图片描述

    ssh连接docker容器

    连接docker容器大体步骤与连接虚拟机类似。
    在创建和运行docker容器时需要将容器的22端口映射到虚拟机的外部端口比如映射到20000

    docker run -p 20000:22 --name ubuntu_test -itd ubuntu:latest
    
    • 1

    刚开始运行容器需要初始化容器的root密码,使用passwd命令按要求修改即可。并且完成连接虚拟机中的各个操作即可
    最后在进行免密登陆过程中~/.ssh/config中需要额外添加Port 20000
    最后即可按照连接虚拟机的方法登陆了。

  • 相关阅读:
    银行卡四要素验证API接口文档:支持手机号归属地验证
    [MySQL]日期和时间函数
    Cookie 与 Session的区别
    C#创建磁性窗体的方法:创建特殊窗体
    java计算机毕业设计教材订购系统源码+mysql数据库+系统+lw文档+部署
    如何看待PyTorch 2.0?
    Vue项目中可能存在的问题和解决方案
    STM32CubeMX学习笔记(46)——USB接口使用(HID自定义设备)
    计算机网络——TCP/IP模型
    RabbitMQ消息中间件
  • 原文地址:https://blog.csdn.net/qq_57150526/article/details/134519263