整体流程:
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系统,两个centos系统实现免密码登陆,源码截图,亲自实现。
CentOS 6.5之SSH免密码登录配置.docx 自己亲自试验,按文档安装
主要给大家介绍了关于centos配置ssh免密码登录后仍要输入密码的解决方法,需要的朋友可以参考下
主要介绍了CentOS下SSH无密码登录的配置,包括配置SSH无密码登录需要三个步骤,本文给大家介绍的非常详细,具有参考借鉴价值,需要的朋友可以参考下
主要介绍了CentOS 6.5中SSH免密码登录配置的相关资料,包括环境设置,本机生成公钥和私钥等知识点,本文给大家介绍的非常详细具有参考借鉴价值,需要的朋友可以参考下
shell+expect编写的 大数据集群ssh免密登录自动化配置脚本(带说明文档)
本篇文章主要介绍了CentOS SSH无密码登录的配置,避免了繁琐的密码验证,有需要的朋友可以了解一下。
本篇文章主要介绍了在CentOS / RHEL上设置 SSH 免密码登录的方法,自动登录配置好以后,你可以通过它使用 SSH (Secure Shell)和安全复制 (SCP)来移动文件。
配置分两部分:一是对登录机的配置,二是对被登录机的配置,其中登录机为客户端,被登录机为服务端,也就是解决客户端到服务端的无密码登录问题。下述涉及到的命令,可以直接拷贝到Linux终端上执行,已全部验证通过...
CentOS 配置无密码登录 配置sshd服务 在服务器上修改/etc/ssh/sshd_config: <!– lang: shell –> #禁止root登录 PermitRootLogin no #指定可以登录的用户 AllowUsers bob alice StrictModes yes #关闭密码...
在虚拟机下如何利用3个centos系统进行hadoop集群配置,包括两个slave节点,一个master节点,JDK安装,SSH免密码登陆,hadoop下载安装配置启动、并检测。
CentOS6.8单用户模式下修改密码,具体内容如下 1. 选择进入菜单menu界面,在开启系统出现如下界面时... 您可能感兴趣的文章:CentOS 6.5中SSH免密码登录配置教程Linux学习之CentOS(二十二)–进入单用户模式下修改Root用
配置分两部分:一是对登录机的配置,二是对被登录机的配置,其中登录机为客户端,被登录机为服务端,也就是解决客户端到服务端的无密码登录问题。下述涉及到的命令,可以直接拷贝到Linux终端上执行,已全部验证通过...
sh ssh_auto.sh 192.168.30.12 <用户名> <密码>
先决条件 3 台 CentOS 7 HOSTNAME ...2. CentOS 默认没有启动 ssh 无密登录,去掉 /etc/ssh/sshd_config 其中 2 行的注释,每台服务器都要设置。 RSAAuthentication yes PubkeyAuthentication y
1.2.1禁止SSH 空密码用户登录 安全基线项目名称 操作系统Linux安全基线要求项 安全基线项说明 禁止SSH空密码用户登录 安全基线要求 编辑文件/etc/ssh/sshd_config,将 PermitEmptyPasswords设置为:no 并重启服务 ...
本文实例为大家分享了jaLinux配置远程SSH无密码登录的方法,供大家参考,具体内容如下 系统:CentOS 6.8 主机1:192.168.0.177 主机2:192.168.0.178 工具介绍: ssh-keygen:创建公钥和密钥 ssh-copy-id:把生成的...