通过跳板机登录远程节点

前提说明

  • rundeck:客户端 192.168.172.131

  • jump:是跳板机或者堡垒机 192.168.172.133

  • node:是远程节点 192.168.172.135

rundeck无法直接访问node,需要通过jump跳转

命令详解

jump密钥认证、node密码认证

场景说明
  • node 不支持密钥认证,只能支持用户名密码

  • rundeck 需要知道node用户名和密码

  • 跳板机支持密钥认证,分为两种情况,这里两种情况认证模式是一样的【跳板机公钥认证】:

  • 情况1:考虑到跳板的authorized_keys
    如果不允许放入client的rundeck_id_rsa.pub的公钥,麻烦了点

  • 此时rundeck需要拥有jump的私钥,将jump的私钥拷贝到rundeck中

  • jump的authorized_keys中需要加入jump自身的公钥

  • 情况2:考虑到跳板的authorized_keys
    如果允许放入client的rundeck_id_rsa.pub的公钥

  • jump的authorized_keys中需要加入rundeck的公

认证原理

  +----------------+             +-------------------+             +-----------------+
  |                | SSH         |                   | SSH         |                 |
  |  Rundeck       +------------>|   JUMP            +------------>|   Node          |
  |                |             |                   |             |                 |
  +----------------+             +-------------------+             +-----------------+
  Rundeck主机           Jump主机(需有公钥认证)                节点机器主机(用户密码认证)
实现方案

命令:sshpass -f <目标主机密码文件> ssh -q -oClearAllForwardings=yes -p 目标主机端口 -F <ssh_config文件> 目标主机用户名@目标主机名

这里实现方案是针对情况2的实现

jump机器的操作

###第一步:在店创建一个 ssh 用户,这里是使用root
###第二步:生成密钥对
[root@localhost ~]# ssh-keygen
。。。。。
[root@localhost ~]# ll /root/.ssh/
总用量 32
-rw-r--r--. 1 root root 1573 7月  22 21:19 authorized_keys
-rw-r--r--. 1 root root   26 7月  19 10:30 config
-rw-------. 1 root root 1675 7月  19 10:57 id_rsa
-rw-r--r--. 1 root root  408 7月  19 10:57 id_rsa.pub
-rw-r--r--. 1 root root  177 7月  16 21:26 known_hosts
###第三步:将自己的公钥附加到authorized_keys
[root@localhost ~]# cat /root/.ssh/id_rsa.pub >>/root/.ssh/authorized_keys
###第三步:将自己的私钥远程到拷贝到Rundeck服务器中
[root@localhost ~]#  scp /root/.ssh/id_rsa root@192.168.172.131:/home/rundeck/jump/192.168.172.133_id_rsa

rundeck机器的操作

[root@davytestcentos jump]# sshpass -f /home/rundeck/jump/NODE_SSH_PASS_FILE ssh -q -oClearAllForwardings=yes -p 22 -F /home/rundeck/jump/jump_key_ssh_config root@192.168.172.135
Last login: Sun Jul 16 21:36:55 2023 from 192.168.172.133

[root@davytestcentos jump]# cat /home/rundeck/jump/jump_key_ssh_config
Host *
  StrictHostKeyChecking no
  ProxyCommand ssh -i  /home/rundeck/jump/192.168.172.133_id_rsa root@192.168.172.133 -W %h:%p
       
 
[root@davytestcentos jump]# cat  /home/rundeck/jump/NODE_SSH_PASS_FILE  #目标主机密码 
123456

jump密钥认证、node密钥认证

场景说明
  • node 支持密钥认证

  • rundeck 需要知道私钥

  • node的authorized_keys中需要加入自身的公钥

  • 跳板机支持密钥认证,分为两种情况,这里两种情况认证模式是一样的【跳板机公钥认证】:

  • 情况1:考虑到跳板的authorized_keys
    如果不允许放入client的rundeck_id_rsa.pub的公钥,麻烦了点

  • 此时rundeck需要拥有jump的私钥,将jump的私钥拷贝到rundeck中

  • jump的authorized_keys中需要加入jump自身的公钥

  • 情况2:考虑到跳板的authorized_keys
    如果允许放入client的rundeck_id_rsa.pub的公钥

  • jump的authorized_keys中需要加入rundeck的公钥

认证原理
  +----------------+             +-------------------+             +-----------------+
  |                | SSH         |                   | SSH         |                 |
  |  Rundeck       +------------>|   JUMP            +------------>|   Node          |
  |                |             |                   |             |                 |
  +----------------+             +-------------------+             +-----------------+
  服务端主机           跳板机主机(需有公钥认证)                节点机器主机(需有公钥认证)
实现方案

命令:ssh -q -oClearAllForwardings=yes -p 目标主机端口 -F <ssh_config文件> -i <目标主机私钥文件> 目标主机用户名@目标主机名

node机器的操作

###第1步:将自己的公钥附加到authorized_keys
[root@localhost ~]# cat /root/.ssh/id_rsa.pub >>/root/.ssh/authorized_keys
###第2步:将自己的私钥远程到拷贝到Rundeck服务器中
[root@localhost ~]#  scp /root/.ssh/id_rsa root@192.168.172.131:/home/rundeck/jump/192.168.172.135_id_rsa

jump机器的操作

###第1步:将自己的公钥附加到authorized_keys
[root@localhost ~]# cat /root/.ssh/id_rsa.pub >>/root/.ssh/authorized_keys
###第2步:将自己的私钥远程到拷贝到Rundeck服务器中
[root@localhost ~]#  scp /root/.ssh/id_rsa root@192.168.172.131:/home/rundeck/jump/192.168.172.133_id_rsa

rundeck机器的操作

[root@davytestcentos jump]# ssh -q -oClearAllForwardings=yes -p 22 -F /home/rundeck/jump/jump_key_ssh_config -i /home/rundeck/jump/192.168.172.135_id_rsa root@192.168.172.135
Last login: Sun Jul 16 21:52:46 2023 from 192.168.172.133
[root@davytestcentos jump]# cat /home/rundeck/jump/jump_key_ssh_config
Host *
  StrictHostKeyChecking no
  ProxyCommand ssh -i  /home/rundeck/jump/192.168.172.133_id_rsa root@192.168.172.133 -W %h:%p

jump密码认证、node密码认证

场景说明
  • jump 只能支持用户密码,node只能支持用户名密码

  • rundeck 需要知道jump用户名和密码

  • rundeck 需要知道node用户名和密码

认证原理

  +----------------+             +-------------------+             +-----------------+
  |                | SSH         |                   | SSH         |                 |
  |  Rundeck       +------------>|   JUMP            +------------>|   Node          |
  |                |             |                   |             |                 |
  +----------------+             +-------------------+             +-----------------+
  Rundeck主机           Jump主机(用户密码认证)                节点机器主机(用户密码认证)
实现方案

命令:sshpass -f <跳板机密码文件> ssh -q -oClearAllForwardings=yes -p 目标主机端口 -F <ssh_config文件> 目标主机用户名@目标主机名

rundeck机器的操作

[root@davytestcentos jump]# sshpass -f /home/rundeck/jump/NODE_SSH_PASS_FILE ssh -q -oClearAllForwardings=yes -p 22 -F /home/rundeck/jump/jump_pass_ssh_config root@192.168.172.135

Last login: Sun Jul 16 21:14:49 2023 from 192.168.172.133
[root@davytestcentos jump]# cat /home/rundeck/jump/jump_pass_ssh_config
Host *
  StrictHostKeyChecking no
  Port 22
  ProxyCommand sshpass -f  /home/rundeck/jump/JUMP_SSH_PASS_FILE ssh -p 22 root@192.168.172.133 -W %h:%p          
[root@davytestcentos jump]# cat  /home/rundeck/jump/JUMP_SSH_PASS_FILE  #跳板机密码 
123456
[root@davytestcentos jump]# cat  /home/rundeck/jump/NODE_SSH_PASS_FILE  #目标主机密码 
123456
      

这些只是一些测试命令,设计上欠缺了点

##简单命令 
ssh -o ProxyCommand="ssh -W %h:%p root@192.168.172.133" root@192.168.172.135
##增加环境变量设置
env SSHPASS="跳板机密码" sshpass -d 123 ssh -o StrictHostKeyChecking=no -o ProxyCommand="sshpass -e ssh -o StrictHostKeyChecking=no 跳板机用户@跳板机主机 -W %h:%p"  目标主机用户@目标主机名  123<<<目标主机密码
##测试命令
env SSHPASS="123456"   sshpass -d 123 ssh  -o StrictHostKeyChecking=no -o ProxyCommand="sshpass -e ssh -o StrictHostKeyChecking=no root@192.168.172.133 -W %h:%p"  root@192.168.172.135  123<<<123456

jump密码认证、node密钥认证

场景说明
  • node 支持密钥认证

  • rundeck 需要知道私钥

  • node的authorized_keys中需要加入自身的公钥

认证原理
  +----------------+             +-------------------+             +-----------------+
  |                | SSH         |                   | SSH         |                 |
  |  Rundeck       +------------>|   JUMP            +------------>|   Node          |
  |                |             |                   |             |                 |
  +----------------+             +-------------------+             +-----------------+
  服务端主机           跳板机主机(需有用户名密码)                节点机器主机(需有公钥认证)
实现方案

命令:ssh -q -oClearAllForwardings=yes -p 目标主机端口 -F <ssh_config文件> -i <目标主机私钥文件> 目标主机用户名@目标主机名

node机器的操作

###第1步:将自己的公钥附加到authorized_keys
[root@localhost ~]# cat /root/.ssh/id_rsa.pub >>/root/.ssh/authorized_keys
###第2步:将自己的私钥远程到拷贝到Rundeck服务器中
[root@localhost ~]#  scp /root/.ssh/id_rsa root@192.168.172.131:/home/rundeck/jump/192.168.172.135_id_rsa

rundeck机器的操作

[root@davytestcentos jump]#ssh -q -oClearAllForwardings=yes -p 22 -F /home/rundeck/jump/jump_pass_ssh_config -i /home/rundeck/jump/192.168.172.135_id_rsa root@192.168.172.135

Last login: Sun Jul 16 21:14:49 2023 from 192.168.172.133
[root@davytestcentos jump]# cat /home/rundeck/jump/jump_pass_ssh_config
Host *
  StrictHostKeyChecking no
  ProxyCommand sshpass -f  /home/rundeck/jump/JUMP_SSH_PASS_FILE ssh -p 22 root@192.168.172.133 -W %h:%p
[root@davytestcentos jump]# cat  /home/rundeck/jump/JUMP_SSH_PASS_FILE  #跳板机密码 
123456
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值