`
maosheng
  • 浏览: 550119 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

CentOS下SSH免密码登录的配置

阅读更多
整体流程:

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免密码登陆

    VMware中建立centos系统,两个centos系统实现免密码登陆,源码截图,亲自实现。

    CentOS 6.5 SSH免密码登录

    CentOS 6.5之SSH免密码登录配置.docx 自己亲自试验,按文档安装

    centos配置ssh免密码登录后仍要输入密码的解决方法

    主要给大家介绍了关于centos配置ssh免密码登录后仍要输入密码的解决方法,需要的朋友可以参考下

    CentOS下SSH无密码登录的配置文件

    主要介绍了CentOS下SSH无密码登录的配置,包括配置SSH无密码登录需要三个步骤,本文给大家介绍的非常详细,具有参考借鉴价值,需要的朋友可以参考下

    CentOS 6.5中SSH免密码登录配置教程

    主要介绍了CentOS 6.5中SSH免密码登录配置的相关资料,包括环境设置,本机生成公钥和私钥等知识点,本文给大家介绍的非常详细具有参考借鉴价值,需要的朋友可以参考下

    centos7 ssh免密登录自动化配置脚本(ps:已测试过)

    shell+expect编写的 大数据集群ssh免密登录自动化配置脚本(带说明文档)

    CentOS SSH无密码登录的配置

    本篇文章主要介绍了CentOS SSH无密码登录的配置,避免了繁琐的密码验证,有需要的朋友可以了解一下。

    在CentOS / RHEL上设置 SSH 免密码登录的方法

    本篇文章主要介绍了在CentOS / RHEL上设置 SSH 免密码登录的方法,自动登录配置好以后,你可以通过它使用 SSH (Secure Shell)和安全复制 (SCP)来移动文件。

    两个SSH2间免密码登录

    配置分两部分:一是对登录机的配置,二是对被登录机的配置,其中登录机为客户端,被登录机为服务端,也就是解决客户端到服务端的无密码登录问题。下述涉及到的命令,可以直接拷贝到Linux终端上执行,已全部验证通过...

    CentOS 配置无密码登录的实现

    CentOS 配置无密码登录 配置sshd服务 在服务器上修改/etc/ssh/sshd_config: &lt;!– lang: shell –&gt; #禁止root登录 PermitRootLogin no #指定可以登录的用户 AllowUsers bob alice StrictModes yes #关闭密码...

    虚拟机VMware下centos配置hadoop集群

    在虚拟机下如何利用3个centos系统进行hadoop集群配置,包括两个slave节点,一个master节点,JDK安装,SSH免密码登陆,hadoop下载安装配置启动、并检测。

    CentOS6.8单用户模式如何修改密码

    CentOS6.8单用户模式下修改密码,具体内容如下 1. 选择进入菜单menu界面,在开启系统出现如下界面时... 您可能感兴趣的文章:CentOS 6.5中SSH免密码登录配置教程Linux学习之CentOS(二十二)–进入单用户模式下修改Root用

    两个openssh间免密码登录

    配置分两部分:一是对登录机的配置,二是对被登录机的配置,其中登录机为客户端,被登录机为服务端,也就是解决客户端到服务端的无密码登录问题。下述涉及到的命令,可以直接拷贝到Linux终端上执行,已全部验证通过...

    CentOS服务器之间配置SSH免密脚本

    sh ssh_auto.sh 192.168.30.12 &lt;用户名&gt; &lt;密码&gt;

    Redhat 7/CentOS 7 SSH 免密登录的方法

    先决条件 3 台 CentOS 7 HOSTNAME ...2. CentOS 默认没有启动 ssh 无密登录,去掉 /etc/ssh/sshd_config 其中 2 行的注释,每台服务器都要设置。 RSAAuthentication yes PubkeyAuthentication y

    Linux系统安全配置规范.docx

    1.2.1禁止SSH 空密码用户登录 安全基线项目名称 操作系统Linux安全基线要求项 安全基线项说明 禁止SSH空密码用户登录 安全基线要求 编辑文件/etc/ssh/sshd_config,将 PermitEmptyPasswords设置为:no 并重启服务 ...

    Linux配置远程SSH无密码登录

    本文实例为大家分享了jaLinux配置远程SSH无密码登录的方法,供大家参考,具体内容如下 系统:CentOS 6.8 主机1:192.168.0.177 主机2:192.168.0.178 工具介绍: ssh-keygen:创建公钥和密钥 ssh-copy-id:把生成的...

Global site tag (gtag.js) - Google Analytics