当前位置: 首页 > news >正文

【ssh】ssh免密登录配置【docker】

ssh登录

1.基本用法

ssh user@hostname
  • user:用户名
  • hostname:云服务器的IP地址或者域名

第一次登录会提示:
The authenticity of host '123.57.47.211 (123.57.47.211)' can't be established. ECDSA key fingerprint is SHA256:iy237yysfCe013/l+kpDGfEG9xxHxm0dnxnAbJTPpG8. Are you sure you want to continue connecting (yes/no/[fingerprint])?

输入yes,然后回车即可。

这样会将该服务器的信息记录在~/.ssh/known_hosts文件中

最后输入密码即可登录到远程服务器。

  • 默认端口为22
  • 如果想登录某特定端口
    ssh user@hostname -p 22

2.配置别名

每次登录都需要输入云服务器的IP,一般不会记住,并且很麻烦。
可以在本地存储该IP并设置别名:

  • 创建文件~/.ssh/config
    • 1.先创建.ssh文件夹:mkdir .ssh
    • 2.进入.ssh文件夹创建config文件:cd .ssh, touch config
    • 3.进入config文件配置别名:
    • 4.保存并退出:esc + :wq
Host myserver1HostName IP地址或域名User 用户名Host myserver2HostName IP地址或域名User 用户名

之后再使用服务器时,可以直接使用别名myserver1、myserver2:
比如:
ssh myserver1:然后输入密码即可。

3.配置免密登录

  • 1.创建密钥:
ssh-keygen

然后一直回车即可。
执行结束之后,~/.ssh/目录下会多两个文件:
* id_rsa:私钥
* id_rsa.pub: 公钥

之后想免密码登录哪个服务器,就将公钥传给哪个服务器即可。

例如,想免密登录myserver服务器。则将公钥中的内容,复制到myserver中的~/.ssh/authorized_keys文件里即可:

  • 1.ssh myserver,然后输入密码登录到云服务器中
  • 2.检查有没有.ssh文件夹,没有的话则创建。
  • 3.在.ssh文件夹下,创建authorized_keys文件,将之前的id_rsa.pub里面的内容复制到authorized_keys文件
    (可以在原先的比如gitbash的.ssh目录下执行: cat id_rsa.pub,然后选中公钥内容,按下ctrl+insert键复制,然后通过shift+insert键黏贴到云服务器下authorized_keys文件中)

也可以使用如下命令一键添加公钥:

ssh-copy-id myserver

server是在config文件内配置的别名


下次需要登录云服务器就只需要:

ssh server

就能直接连上了。

4.docker内的ssh登录

  • 1.登录云服务器:
    配置完免密登录即可直接ssh server
  • 2.创建并启动docker容器:
docker load -i docker_lesson_1_0.tar  # 将镜像加载到本地
docker run -p 20000:22 --name my_docker_server -itd docker_lesson:1.0  # 创建并运行docker_lesson:1.0镜像

假设docker容器名为:my_docker_server,进入容器内

docker attach my_docker_server
passwd # 设置root密码
  • 3.云服务器的云平台控制台修改安全组配置,放行端口20000
ssh root@xxx.xxx.xxx.xxx -p 20000  # 将xxx.xxx.xxx.xxx替换成自己租的服务器的IP地址
  • 4.创建工作账户,防止直接在root环境下开发(root权限较大)
  • 5.配置免密登录:
    • 1.在~/.ssh/config中添加:
Host my_docker_serverHostName IP地址或域名User 用户名 Port 20000

然后再执行:

ssh-copy-id my_docer_server

这样就给云服务器里面的docker容器的指定用户也配置好了免密登录,这样只需要通过:

ssh my_docker_server

就能直接进入到docker容器内开始开发了,省事又省力。

http://www.dtcms.com/a/341619.html

相关文章:

  • STM32_0001 KEILMDK V5.36 编译一个STM32F103C8T6说core_cm3.h文件找不到以及编译器版本不匹配的解决办法
  • 25_基于深度学习的行人检测识别系统(yolo11、yolov8、yolov5+UI界面+Python项目源码+模型+标注好的数据集)
  • 详解ThreadLocal<HttpServletRequest> requestThreadLocal
  • Kernel Study
  • 关联规则挖掘1:Apriori算法
  • Deepresearch Agents:下一代自动研究智能体的架构革命与产业实践
  • CAMEL-Task1-CAMEL环境配置及你的第一个Agent
  • postgreSQL卸载踩坑
  • Kolors Virtual Try-On:快手可图推出的AI虚拟换衣项目
  • JAVA中向量数据库(Milvus)怎么配合大模型使用
  • 简笔成画:让AI绘画变得简单而有趣
  • pyecharts可视化图表仪表盘_Gauge:从入门到精通
  • 【Linux】重生之从零开始学习运维之LVS
  • UUID(通用唯一标识符)详解和实践
  • 今日行情明日机会——20250820
  • K8S集群-基于Ingress资源实现域名访问
  • 软件测试面试题真题分享
  • 华为云之基于鲲鹏弹性云服务器部署openGauss数据库【玩转华为云】
  • VMware Workstation | 安装Ubuntu20.04.5
  • 红警国家的注册
  • Linux系统:管道通信
  • 牛津大学xDeepMind 自然语言处理(4)
  • README
  • AVL左旋右旋 学习小得
  • 【机器学习】什么是损失景观(Loss Landscape)?
  • Claude Code Git Commit Push 命令
  • 大模型4位量化 (46)
  • linux内核源码下载
  • CMOS知识点 MOS管不同工作区域电容特性
  • SED项目复现学习实录