• 请不要在回答技术问题时复制粘贴 AI 生成的内容
summerlv
V2EX  ›  程序员

想问问有三台主机,如何 ssh 到一台主机后再执行 exit 自动退出?

  •  
  •   summerlv · Mar 22, 2023 · 2460 views
    This topic created in 1326 days ago, the information mentioned may be changed or developed.

    需求是这样的,我现在想编辑一个 sshgen.sh 脚本文件想自动配置三台主机能实现免密登录。

    但是有一个问题是,如果当前机器的 /home/user/.ssh/ 目录不存在的话需要使用 [ ssh 主机 ip ] 一下给自动生成 .ssh 目录,但是又会连接到 ssh 到一台主机,在远程连接到一台主机后我区分是否当前主机并需要手动输入 exit 退出远程主机,这样会有点不方便。

    所以我的问题是:如何在脚本中写好在 ssh 远程到一台主机后再自动执行 exit 退出到当前主机? 在自动化脚本 sshgen.sh 中如何写这样的命令?

    比如我我执行脚本是这样的逻辑: sshgen.sh hadoop152 hadoop153 hadoop154

    现在 hadoop152 /home/user/ 下没有 .ssh 目录 所以我在执行 sshgen.sh hadoop152 hadoop153 hadoop154 的时候 在 sshgen.sh 中有: for host in $@ do ssh $host ... done 的逻辑,我如何在 ssh $host 这条命令执行后怎样写可以自动退出 ssh $host 执行后登录到的其他主机?

    13 replies  •  2023-03-23 13:41:46 +08:00
    piku
    piku
    Mar 22, 2023 via Android
    1
    有没有一种可能,.ssh 可以从别处复制过来一份
    piku
    piku
    Mar 22, 2023 via Android
    2
    ssh 进程到后台,然后杀进程?
    summerlv
    summerlv
    OP
    Mar 22, 2023
    3
    @piku 怎么无痛退出啊?感觉直接杀掉进程有点不好呢?
    ShineyWang
    ShineyWang
    Mar 22, 2023 via Android
    4
    不能同时连三个主机吗?
    开三个 tab 不就行了?
    dode
    dode
    Mar 22, 2023 via Android
    5
    Ansible
    dode
    dode
    Mar 22, 2023 via Android
    6
    ssh-copy-id 工具
    luanjia
    luanjia
    Mar 22, 2023 via Android
    7
    可以 ssh 到 localhost 再退出?
    nightwitch
    nightwitch
    Mar 22, 2023 via Android
    8
    用 ssh-copy-id ,不用自己写脚本
    cwcc
    cwcc
    Mar 22, 2023
    9
    #!/bin/bash

    hosts=([email protected] [email protected])

    for a in $hosts
    do
    ssh-copy-id -i ~/.ssh/id_rsa.pub $a
    done
    summerlv
    summerlv
    OP
    Mar 22, 2023
    10
    谢谢大家,我找到答案了,一开始没找到所以来问了
    https://blog.csdn.net/PlatoWG/article/details/84618566

    可以在脚本里这样执行 ssh $host "exit"
    这样就可以不用为了自动生成 .ssh 文件而远程到另一台主机而无法退出了。
    cnfczn
    cnfczn
    Mar 22, 2023 via Android
    11
    公司时不时就要给服务器配秘钥,还要禁用密码登录,以前写过一个半自动化脚本。ssh-copy-id 还是会要求输入密码的。后来就将就用了。
    SinceJune
    SinceJune
    Mar 23, 2023
    12
    那我再教你一个小技能,没有互信关系的可以通过 expect 执行。
    yinmin
    yinmin
    Mar 23, 2023
    13
    生成.ssh 目录,可以直接 mkdir ~/.ssh ,不一定需要使用 ssh 。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1432 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 89ms · UTC 04:50 · PVG 12:50 · LAX 20:50 · JFK 23:50
    ♥ Do have faith in what you're doing.