整体流程:
1.在客户机创建一对密钥文件,包括公钥文件(~/.ssh/id_rsa.pub),私钥文件(~/.ssh/id_rsa).
2.把客户机生成的公钥追加到服务器的文件中(~/.ssh/authorized_keys),在使用ssh登录时,ssh程序会发送私钥去和服务器上的公钥做匹配。如果匹配成功就可以免密码登录了
客户机和服务器操作:
1、检查ssh是否安装
#
rpm -qa | grep ssh
如若安装显示如下:
openssh-clients-5.3p1-81.el6.x86_64
openssh-5.3p1-81.el6.x86_64
openssh-server-5.3p1-81.el6.x86_64
libssh2-1.2.2-7.el6_2.3.x86_64
2、如果没安装,安装ssh
#
yum install -y openssh-server openssh-clients
3、验证安装成功
#
ssh -V
服务器操作:
1、创建普通用户
#
useradd hadoop #创建用户hadoop
2、设置用户密码
#
passwd hadoop #给已创建的用户hadoop设置密码(密码:hdp123)
客户机操作:
1,切换为工作操作的用户
#
su - hadoop
2、生成公钥和私钥
#
ssh-keygen -t rsa
注意:生成之后会在用户的根目录(/home/hadoop/)生成一个 “.ssh”的文件夹
# cd .ssh
# ls
在.ssh目录生成两个文件:
id_rsa : 生成的私钥文件
id_rsa.pub : 生成的公钥文件
know_hosts : 已知的主机公钥清单
3、复制客户机的公钥到服务器
需要密码登录验证:
# ssh hadoop@<server_ip> //验证需要密码登录
# exit //退出登录
方法一(简单):
客户机操作
# ssh-copy-id hadoop@<server_ip>
或者
客户机操作
# scp -p ~/.ssh/id_rsa.pub root@<server_ip>:/home/hadoop/.ssh/authorized_keys
方法二(复杂):
# scp ~/.ssh/id_rsa.pub root@<server_ip>:/home/hadoop/id_rsa.pub
然后,将客户机的公钥导入到服务器的认证文件:
# mkdir -p /home/hadoop/.ssh //创建文件夹,
服务器操作
# chmod 700 /home/hadoop/.ssh //授权700,
服务器操作
# touch /home/hadoop/.ssh/authorized_keys //创建文件,
服务器操作
# chmod 600 /home/hadoop/.ssh/authorized_keys //授权600,
服务器操作
# cat /home/hadoop/id_rsa.pub >> /home/hadoop/.ssh/authorized_keys //追加公钥,
服务器操作
注意:如果你想要设置多个客户机免密码登录服务器,那么把每台客户机生成的公钥都追加到服务器authorized_keys文件中
免密登录验证:
# ssh hadoop@<server_ip> //验证免密登录
# exit //退出登录
注意:
1) .ssh目录的权限必须是700
# chmod 700 ~/.ssh
2) .ssh/authorized_keys文件权限必须是600
# chmod 600 ~/.ssh/authorized_keys
使用用例:
客户机:
192.101.11.152(安装docker并安装java:8镜像)
服务器:
192.101.11.162 kubernetes master
192.101.11.163 kubernetes node
192.101.11.163 kubernetes node
客户机创建一对公钥和私钥文件,复制客户机的公钥到服务器
服务器创建普通用户k8s并且授权有docker和kubectl执行权限
服务器已创建有/home/k8s/microservice/demo1-service/目录
普通用户(k8s)添加执行docker权限:
1.切换为root用户
# su - root
2.创建docker 用户组
# groupadd docker ##docker 安装完默认已经创建
3.普通用户(k8s)加入docker用户组
# usermod -aG docker k8s
4.验证普通用户(k8s)是否具有执行docker权限
# su - k8s
# docker images
# docker ps
把以下文件都上传客户机/opt/microservice/demo1-service/目录下,执行deploy.sh进行远程发布
【springboot project:】
demo1-v1.0.0.jar
【deploy.sh:】
#!/bin/bash
echo "begin delete deployment ......"
ssh k8s@192.101.11.162 "kubectl delete deployment demo1-service"
echo "begin build images......"
docker build . -t lms/demo1-service:v1.0.0
echo "begin save and load images......"
docker save lms/demo1-service:v1.0.0 -o demo-service-v1.0.0.tar
scp ./demo-service-v1.0.0.tar k8s@192.101.11.162:/home/k8s/microservice/demo1-service
ssh k8s@192.101.11.162 "docker load < /home/k8s/microservice/demo1-service/demo-service-v1.0.0.tar"
scp ./demo-service-v1.0.0.tar k8s@192.101.11.163:/home/k8s/microservice/demo1-service
ssh k8s@192.101.11.163 "docker load < /home/k8s/microservice/demo1-service/demo-service-v1.0.0.tar"
scp ./demo-service-v1.0.0.tar k8s@192.101.11.164:/home/k8s/microservice/demo1-service
ssh k8s@192.101.11.164 "docker load < /home/k8s/microservice/demo1-service/demo-service-v1.0.0.tar"
echo "begin create deployment and service......"
scp ./deployment.yaml k8s@192.101.11.162:/home/k8s/microservice/demo1-service/
ssh k8s@192.101.11.162 "kubectl apply -f /home/k8s/microservice/demo1-service/deployment.yaml"
【Dockerfile:】
##起源于哪个镜像
FROM java:8
##指定作者信息
MAINTAINER luomaosheng 67028745@qq.com
##创建一个可以从本地主机挂载的挂载点
VOLUME /tmp
##将本地的一个文件拷贝到容器某个目录里
ADD demo1-v1.0.0.jar rest-demo1.jar
##容器的默认执行命令
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/rest-demo1.jar"]
【deployment.yaml:】
apiVersion: apps/v1
kind: Deployment
"metadata": {
"name" : "demo1-service",
}
spec:
selector:
matchLabels:
app: demo1-service
replicas: 3
revisionHistoryLimit: 5
template:
metadata:
labels:
app: demo1-service
spec:
containers:
- name: demo1-service
image: lms/demo1-service:v1.0.0
imagePullPolicy: IfNotPresent
ports:
- containerPort: 8080
---
apiVersion: v1
kind: Service
metadata:
name: demo1-service
labels:
name: demo1-service
spec:
# three type : ClusterIP,NodePort,LoadBalancer
type: NodePort
ports:
# define the service's port
- name: demo1-service-8080
port: 8080
protocol: TCP
# define the container's port
targetPort: 8080
# nodePort type: NodePort
nodePort: 30080
selector:
app: demo1-service
分享到:
相关推荐
在虚拟机VMware中配置CentOS系统实现SSH免密码登陆,可以极大地提高工作效率,减少手动输入密码的繁琐步骤。以下将详细介绍如何在两个CentOS系统之间配置SSH免密码登陆。 首先,我们需要了解SSH的基本原理。SSH通过...
CentOS 6.5 SSH 免密码登录配置 本文将详细介绍 CentOS 6.5 之 SSH 免密码登录配置的相关知识点。 一、环境设置 在 CentOS 6.5 中,需要关闭防火墙和 SELinux,以便进行后续的配置。关闭防火墙可以使用以下命令:...
CentOS7下SSH免密登录配置是基于RSA公钥/私钥对来实现的一种认证机制,它允许用户无需输入密码即可安全登录到服务器。了解该配置原理和步骤对于管理Linux服务器集群尤为关键。 首先,公私钥认证方式的核心在于...
当管理多台服务器时,配置SSH免密码登录可以极大提高工作效率,特别是在构建集群服务时。然而,有时按照常规步骤配置后,仍然需要输入密码才能登录,这可能会导致不便。以下是一个详细的解决方法,专门针对CentOS...
要配置SSH服务,首先需要在CentOS上安装SSH服务。在CentOS 5.3版本中,可以通过`yum install ssh`命令来安装SSH。安装完成后,可以使用`service sshd start`启动SSH服务,并使用`chkconfig sshd on`将其设置为开机...
本文将详细介绍如何使用shell和expect脚本在CentOS7系统上实现SSH免密登录的自动化配置。 首先,我们需要理解SSH免密登录的基本原理。SSH免密登录依赖于公钥认证机制。每个SSH用户都有一个密钥对,包括公钥和私钥。...
Centos 通过 SSH 远程桌面登录 Centos 通过 SSH 远程桌面登录是指使用 Secure Shell(SSH)协议连接到 Centos 服务器,并使用远程桌面协议(Remote Desktop Protocol,RDP)访问 Centos 服务器桌面的一种方法。这种...
本文将详细介绍如何在CentOS环境下配置SSH的无密码登录,并解决在配置过程中可能遇到的一些常见问题。 #### 二、基础知识 ##### 2.1 SSH简介 SSH是一种网络协议,用于计算机之间的加密登录。它可以在不安全的网络...
在CentOS 6.5中配置SSH免密码登录涉及到几个关键步骤,主要包括环境设置、生成密钥对、导入公钥以及修改文件权限。 **环境设置** 1. **关闭SELinux**:SELinux是CentOS 6.5中的安全增强层,但为了实现SSH免密码...
### CentOS下SSH无密码登录配置详解 #### 一、引言 在CentOS系统中,SSH无密码登录是一种常见的远程管理方式,它不仅能够提高工作效率,还能增强安全性。本文将详细介绍如何在CentOS环境下实现SSH无密码登录,包括...
在Windows 7操作系统中,通过SSH(Secure Shell)连接到远程Linux系统,如CentOS 7,进行图形化界面操作,通常需要借助第三方工具。在这个场景下,我们使用PuTTY作为SSH客户端,而Xming作为X Window System的本地...
在IT领域,特别是服务器管理,CentOS 7操作系统是一个广泛使用的Linux发行版。...同时,配置防火墙规则以允许必要的SSH端口访问(默认为22),并考虑使用更安全的身份验证方法,如公钥认证,以提高系统的安全性。
通过对CentOS 6.4系统下SSH服务器的详细介绍,我们可以了解到SSH不仅仅是一个简单的远程登录工具,它还提供了一系列强大的安全特性和服务。掌握SSH的使用对于Linux系统的管理和维护至关重要。通过本文所述的方法和...
配置SSH是CentOS初学者必须掌握的基本技能,它允许管理员远程登录和管理服务器,而无需直接接触物理设备。 【标签】:"centos"、"SSH"、"公钥"、"私钥" SSH服务的配置涉及到公钥和私钥这对密钥对。公钥和私钥是SSH...
### CentOS之SSH安装详解 ...通过以上步骤,你可以在CentOS系统上成功安装并配置SSH服务,从而实现安全的远程登录和其他网络服务。SSH不仅是远程管理Linux服务器的必备工具,也是保护网络安全的重要手段之一。
免密码自动登录SSH,也称为SSH无密码登录,是一种通过SSH协议进行远程系统访问时,无需每次输入用户密码的方法。这对于频繁需要在多台服务器之间切换的系统管理员来说,极大地提高了工作效率。本教程将详细解释如何...
本文档详细介绍了如何配置CentOS 7系统的SSH免密登录,使得多台机器之间能够安全且无需密码地互相访问。 首先,了解SSH的基本概念是必要的。SSH(Secure Shell)是一种网络协议,用于在不安全的网络环境中提供安全...
**SSH无密码登录配置详解** 在CentOS系统中,SSH(Secure Shell)是用于远程登录的一种安全协议。SSH无密码登录允许用户在不同主机之间进行身份验证时无需手动输入密码,极大地方便了系统管理员对多台服务器的管理...
实现SSH2环境下的免密码登录主要分为两个部分:一是登录机(客户端)的配置;二是被登录机(服务端)的配置。通过这些步骤,可以确保客户端到服务端的无密码登录过程顺利进行。 #### 操作环境 - **操作系统**: SuSE...